Python课程笔记 (五)
今天主要学习图形用户界面,更多的还是要我们自己去实际操作,课仿佛上了一半就完了,分享一下课程(这里在SixthClass)的源码:
https://gitee.com/wang_ming_er/python_course_learning
1、图形用户界面设计
常用的模块:
- tkinder,python系统自带
- wxpython,优秀的跨平台GUI库wxWidgets的Python封装和Python模块的方式提供给用户的
等等....
今天上课学的主要是tkinder:
控件 | 描述 |
---|---|
Button | 按钮控件;在程序中显示按钮。 |
Canvas | 画布控件;显示图形元素如线条或文本 |
Checkbutton | 多选框控件;用于在程序中提供多项选择框 |
Entry | 输入控件;用于显示简单的文本内容 |
Frame | 框架控件;在屏幕上显示一个矩形区域,多用来作为容器 |
Label | 标签控件;可以显示文本和位图 |
Listbox | 列表框控件;在Listbox窗口小部件是用来显示一个字符串列表给用户 |
Menubutton | 菜单按钮控件,由于显示菜单项。 |
Menu | 菜单控件;显示菜单栏,下拉菜单和弹出菜单 |
Message | 消息控件;用来显示多行文本,与label比较类似 |
Radiobutton | 单选按钮控件;显示一个单选的按钮状态 |
Scale | 范围控件;显示一个数值刻度,为输出限定范围的数字区间 |
Scrollbar | 滚动条控件,当内容超过可视化区域时使用,如列表框。. |
Text | 文本控件;用于显示多行文本 |
Toplevel | 容器控件;用来提供一个单独的对话框,和Frame比较类似 |
Spinbox | 输入控件;与Entry类似,但是可以指定输入范围值 |
PanedWindow | PanedWindow是一个窗口布局管理的插件,可以包含一个或者多个子控件。 |
LabelFrame | labelframe 是一个简单的容器控件。常用与复杂的窗口布局。 |
tkMessageBox | 用于显示你应用程序的消息框。 |
2、tkinter模块的标签使用
(1)导入tkinter模块
import tkinter
(2)创建一个顶层容器对象
# 定义一个窗体
win = tkinter.TK()
(3)在顶层容器对象中添加组件
# 定义一个窗体
win.title('标签示例')
# 定义窗体的大小400x200像素
win.geometry('400x200')
# 自定义标签label
label = tkinter.Label(win,\
text ='欢迎进入Python世界!',\
font='宋体',\
fg='#FF6A6A'
)
(4)调用pack()方法进行容器的局域布局
label.pack()
(5)进入主事件循环,目的保持窗口一直显示状态
win.mainloop()
3、tkinter模块的按钮使用
窗体中的按钮事件示例:
点击按钮后,弹出一个文本标签
import tkinter
win = tkinter.Tk()
win.title('最简单窗体')
win.geometry('400x200')
t1 = '\n 少壮不努力,长大学程序.'
f1='宋体 16'
def mClick():
label1 = tkinter.Label(win, text=t1, font=f1,fg='#FF6A6A')
label1.pack()
B = tkinter.Button(win, text ="点击我!", command = mClick, font = f1,fg='#FF6A6A')
B.pack()
win.mainloop()
4、三种布局管理方式
(1)Pack 布局管理器
如果使用Pack布局,那么这些组件是依次向后排列,排列方向即可是水平的,也可是垂直的。
(2)Place布局管理器
Place布局就是其他GUI编程中的“绝对布局”,这种布局方式要求程序指定每个组件的绝对位置或相对于其他组件的位置。
(3)Grid布局管理器
Grid是把组件空间分解成一个网格进行维护,即按照行、列的方式排列组件,组件位置由其所在的行号和列号决定:行号相同而列号不同的的几个组件会被依次进行上下排列,列号相同而行号不同的几个组件会被依次进行左右排序。
5、密码验证的小实验
运用上面所学知识,设计一个密码验证的实验
from tkinter import *
win = Tk()
win.geometry('600x400')
win.title('密码验证')
#发送按钮事件
def mClick():
txt = txt2.get()
if(txt == 'abc'):
txt3.set("欢迎进入本系统")
else:
txt3.set("密码错误")
#创建几个组件元素
lab1=Label(win, text="请输入用户名:",font=('华文新魏','16'))
lab2=Label(win, text="请输入密 码:",font=('华文新魏','16'))
txt1=StringVar()
txt2=StringVar()
txt3=StringVar()
txt3.set("请输入用户名和密码")
entry1 = Entry(win,textvariable=txt1, width=16,font=('宋体','16') )
entry2 = Entry(win,textvariable=txt2,width=16,show='*',font=('宋体','16'))
button = Button(win, text='提交', command=mClick,font=('宋体','16'))
lab3=Label(win,textvariable=txt3,relief='ridge',width=30,font=('华文新魏','16'))
#布局设置
lab1.grid(row=0,column=0)
lab2.grid(row=1,column=0)
entry1.grid(row=0,column=1)
entry2.grid(row=1,column=1)
lab3.grid(row=2,column=0,columnspan=2)
button.grid(row=2,column=2)
win.mainloop()
这里在mClick()函数中设置了密码为abc,输入正确密码即可登录,否则将返回密码错误的提示。
Python课程笔记 (五)的更多相关文章
- Python课程笔记(一)
由于新冠状病毒的爆发,不得不在家里上网课,开课已经两个礼拜了,今天上完Python课后,准备整理一下最近学习Python的笔记. 人生苦短,我用Python 一.Hello World 初学一门新的语 ...
- Python学习笔记五
一. 递归 递归函数: def a (): print ("from b") b() def b(): print("from a ") a() a() 递推和 ...
- Python学习笔记五:错误与异常
一:常见异常与错误 BaseException 所有异常的基类SystemExit 解释器请求退出KeyboardInterrupt 用户中断执行(通常是输入^C)Exception 常规错误的基类S ...
- python学习笔记(五):装饰器、生成器、内置函数、json
一.装饰器 装饰器,这个器就是函数的意思,连起来,就是装饰函数,装饰器本身也是一个函数,它的作用是用来给其他函数添加新功能,比如说,我以前写了很多代码,系统已经上线了,但是性能比较不好,现在想把程序里 ...
- Python课程笔记(十)
不陌生,之前学习一个开源SpringBoot项目,Mysql5.5更换到5.7搞得头疼. 数据库连接的坑之前写的IDEA系列连接会遇到的问题.课程代码 今天上课就主要学习了python如何连接mysq ...
- Python课程笔记(九)
本次课程主要学习了Excel和JSON格式的一些读写操作.课程代码 一.Excel数据读写操作 1.安装模块 pip install xlrd pip install xlwt 网不好可以采用三方库: ...
- Python课程笔记(八)
一些简单的文件操作,学过linux的话理解感觉不会很难.课程代码 一.OS 目录方法 这个模块提供了一种方便的使用操作系统函数的方法 函数 说明 os.mkdir("path") ...
- Python课程笔记(六)
今天上课补上了上次未学完比较重点的鼠标和键盘事件,同时开始学习运用turtle进行绘图. 本次课程的代码: https://gitee.com/wang_ming_er/python_course_l ...
- python学习笔记五 模块下(基础篇)
shevle 模块 扩展pickle模块... 1.潜在的陷进 >>> import shelve>>> s = shelve.open("nb" ...
随机推荐
- 硕盟type-c转接头|四合一多功能扩展坞
硕盟SM-T54是一款 TYPE C转HDMI+VGA+USB3.0+PD3.0四合一多功能扩展坞,支持四口同时使用,您可以将含有USB 3.1协议的电脑主机,通过此产品连接到具有HDMI或VGA的显 ...
- Xilinx约束学习笔记(三)—— 时序概念
3. 时序概念 发现对于时序基础的介绍这一块,Intel 的文档竟然要比 Xilinx 的详细,因此引用了很多 Intel 的文档内容. 3.1 术语 发送沿(launch edge),指用来发送数据 ...
- [第九篇]——Docker 镜像使用之Spring Cloud直播商城 b2b2c电子商务技术总结
Docker 镜像使用 当运行容器时,使用的镜像如果在本地中不存在,docker 就会自动从 docker 镜像仓库中下载,默认是从 Docker Hub 公共镜像源下载. 下面我们来学习: 1.管理 ...
- djang2.1教育平台02
在次申明,之所以重做这个资料是因为原幕课教程漏洞太多,新手根本没有办法正常照些学习,我凭着老男孩python 课程基础,重做这个教程 ,更改版本为当前最新版本,为了方法以后的人学习,并不是照着原文照 ...
- I/O流中的字节流
今天总结一下Java中重要的知识点I/O流,今天主要学习了字节流(自己的理解) 什么是I/O:我们把这种数据的传输,可以看做是一种数据的流动,按照流动的方向,以内存为基准,分为输入input和输出ou ...
- rationrose安装步骤
Rational Rose是Rational公司出品的一种面向对象的统一建模语言的可视化建模工具.用于可视化建模和公司级水平软件应用的组件构造. 就像一个戏剧导演设计一个剧本一样,一个软件设计师使用R ...
- Java基础系列(9)- 数据类型扩展及常见面试题
整数拓展 // 整数拓展: 进制 二进制0b 十进制 八进制0 十六进制0x // 同一个数字在不同进制中,结果是不同的,进制换算 int i = 10; int i2 = 010; // 八进制 i ...
- Python-对Pcap文件进行处理,获取指定TCP流
通过对TCP/IP协议的学习,本人写了一个可以实现对PCAP文件中的IPV4下的TCP流提取,以及提取指定的TCP流,鉴于为了学习,没有采用第三方包解析pcap,而是对bytes流进行解析,其核心思想 ...
- bzoj#4722-由乃【倍增,抽屉原理,bitset】
正题 题目链接:https://darkbzoj.tk/problem/4722 题目大意 给出一个长度为\(n\)的序列值域为\([0,v)\),要求支持操作 询问一个区间能否找到两个没有交的非空下 ...
- git批量处理git author和commit
最近在做自己项目的时候,由于使用了git全局配置的用户名和邮箱,导致自己私人的仓库里面的所有提交记录都是用的公司的邮箱和用户名,于是想批量替换一下. 可以在需要修改的项目的根目录下使用如下命令,进行批 ...