自学Python第二十一天- tkinter 模块基础学习,制作 GUI
- tkinter 的安装和引入
- GUI 编程一般流程
- 界面设计
- 创建画布
- 在画布上绘制元素
- 设置各元素的属性
- 定位、布局
- 呈现界面、持久化
- 功能实现
python 默认的是命令行模式,但是编程少不了交互界面,所以 GUI 也是编程必学的部分。这里研究 tkinter 模块的使用。
tkinter 的安装和引入
tkinter 是系统模块,不需要进行安装,可以直接引入。 from tkinter import *
GUI 编程一般流程
GUI 编程分为界面设计和功能实现两部分,一般使用这样的流程:
- 创建画布(窗口)
- 在画布上绘制元素(控件、组件)
- 设置各元素(控件、组件)的属性、呈现时的样式、位置等
- 界面呈现给用户,并进行持久化
- 设置各元素的交互事件
- 对各种交互事件进行处理
- 对处理后的数据进行存储或呈现给用户
其中1-4为界面设计,4-6为功能实现。
界面设计
界面设计基本上就是创建画布,然后在画布上添加各元素,设置元素的样式、位置等。通常添加元素和设置元素属性一般放在一起,方便阅读。
创建画布
root = Tk() # 创建了一个画布(窗体)
root.title('全网音乐下载器') # 设置窗体标题
root.geometry('560x450+400+200') # 设置窗体大小为 560x450 ,起始位置在 400,200 的地方。
在画布上绘制元素
label = Label(root, text='请输入下载歌曲:', font=('微软雅黑 bold', 20)) # 创建一个 label 组件在窗体 root
entry = Entry(root, font=('隶书', 20)) # 创建一个 Entry 组件在窗体 root
var = StringVar() # 添加2个单选按钮,因为是单选,所以要成组,即这些按钮的值只有一个有效。这里存放有效值
r1 = Radiobutton(root, text='网易云', variable=var, value='网易云') # 添加一个单选按钮,有效值存放变量为 var ,本按钮的值为 '网易云'
r2 = Radiobutton(root, text='QQ', variable=var, value='QQ') # 添加一个单选按钮,有效值存放变量为 var ,本按钮的值为 'QQ'
listbox = Listbox(root, font=('宋体', 16), width=50, height=15) # 添加一个列表框,并设置大小
b1 = Button(root, text='开始下载', font=('黑体', 15)) # 添加按钮 b1
b2 = Button(root, text='退出程序', font=('黑体', 15), command=root.quit) # 添加按钮 b2 ,设置点击命令执行 root.quit() 方法
这里需要注意的是,Button 元素的 command 可以调用一个函数,但是不能传参。需要传参则使用 lambda
进行间接调用。
设置各元素的属性
定位、布局
label.grid() # 将 lable 呈现在窗体上,位置为默认位置
entry.grid(row=0,column=1) # 将 entry 呈现在窗体上,位置为第1行第2列
r1.grid(row=1, column=0)
r2.grid(row=1, column=1)
listbox.grid(row=2, columnspan=2) # 将 listbox 呈现在窗体上,位置为第2行,并且合并2列
b1.grid(row=3, column=0)
b2.grid(row=3, column=1)
呈现界面、持久化
python 不像一些所见即所得的 GUI 编程环境(例如 VB 等),设计完成呈现的界面必须持久化。否则界面渲染完成后程序就会结束,界面也会随着程序结束而消失。
root.mainloop() # 呈现并持久化界面
功能实现
功能实现就是对各元素的操作进行响应,并反馈。例如之前添加元素 b2 时,参数 command=root.quit
就是添加了一个点击操作,响应方法为 root.quit()
方法。至于此方法的行为和反馈则是 tkinter 模块预设的。
更多推荐
自学Python第二十一天- tkinter 模块,GUI编程
发布评论