Python教程 - Tkinter
目录
- 用户与程序的交互
- CLI
- GUI
- python上的GUI库 -- Tkinter
- Tkinter窗体
- 设置窗体的属性
- Tkinter显示控件--Label
- 设置Label的背景颜色
- Tkinter按钮控件--Button
- Tkinter窗体
用户与程序的交互
- CLI(Command Line Interface,命令行接口)
- GUI( Graphical User Interface,图形用户接口)
CLI
Command Line Interface,命令行接口,以一行文字作为输入,一般只能显示文字,例如windows自带的cmd
GUI
Graphical User Interface,图形用户接口,我们常用的window系统就有很多丰富的界面,包括窗口、按钮、文本显示,图片显示等等
python上的GUI库 -- Tkinter
Tkinter 是 Python 的标准 GUI 库。Python 使用 Tkinter 可以快速的创建 GUI 应用程序。IDLE、turtle界面也是用 Tkinter 编写而成。
Tkinter窗体
Python自带的可编辑的GUI界面,是一个图像窗口。Tkinter是使用 python 进行窗口视窗设计的模块。
示例:
# 导入tkinter库
import tkinter
# 创建一个窗体
main = tkinter.Tk()
# 进入消息循环,让窗口可以不断刷新
main.mainloop()
设置窗体的属性
import tkinter
main = tkinter.Tk()
# 设置标题
main.title("My First Window")
# 设置大小(宽x高)
main.geometry("300x200")
main.mainloop()
Tkinter显示控件--Label
Label(标签)控件,是最简单的显示控件,可以显示一些文字
示例:
import tkinter
main = tkinter.Tk()
l = tkinter.Label(main,text='First Label')
l.pack()
main.mainloop()
其中'l.pack()'表示将创建的Label控件l放到main布局中
设置Label的背景颜色
可在创建Label控件时指定bg属性为相应的背景颜色
示例:
import tkinter
main = tkinter.Tk()
l = tkinter.Label(main,text='First Label',bg='red')
l.pack()
main.mainloop()
也可以通过config方式进行配置
Label可以设置以下属性
属性 | 说明 |
---|---|
bg | 背景颜色 |
fg | 前景颜色,即文字的颜色 |
text | 显示的文字 |
height | 控件的高度,Label中表示为一个字符高度的多少倍 |
width | 控件的宽度,Label中表示为一个字符宽度的多少倍 |
... | ... |
示例 |
import tkinter
main = tkinter.Tk()
l = tkinter.Label(main)
l.config(text='First Label')
l.config(bg='red')
l.pack()
main.mainloop()
Tkinter按钮控件--Button
Button(按钮)可以让用户点击
示例
import tkinter
main = tkinter.Tk()
main.title("My First Window")
main.geometry("300x200")
l = tkinter.Label(main,text='First Label')
l.config(bg='red')
l.config(fg='white')
l.config(height=2)
l.config(width=20)
l.pack()
b = tkinter.Button(main)
b.config(text='First Button')
b.pack()
main.mainloop()
同理,也可以设置config改变背景颜色等属性
import tkinter
main = tkinter.Tk()
main.title("My First Window")
main.geometry("300x200")
l = tkinter.Label(main,text='First Label')
l.config(bg='red')
l.config(fg='white')
l.config(height=2)
l.config(width=20)
l.pack()
b = tkinter.Button(main)
b.config(text='First Button')
b.config(bg='green')
b.pack()
main.mainloop()
以上示例的按钮点击没有任何反应,因为我们还没有设置按钮的command属性,该属性表示点击按钮后会调用的函数。因此我们需要先定义一个函数,例如
def btn_click():
print('Button Click')
然后,设置按钮的command属性为上面定义的btn_click函数
b.config(command=btn_click)
完整代码为:
import tkinter
main = tkinter.Tk()
main.title("My First Window")
main.geometry("300x200")
l = tkinter.Label(main,text='First Label')
l.config(bg='red')
l.config(fg='white')
l.config(height=2)
l.config(width=20)
l.pack()
b = tkinter.Button(main)
b.config(text='First Button')
b.config(bg='green')
b.pack()
main.mainloop()
运行程序,点击按钮,观察IDLE输出,可以观察到,每次点击按钮,IDLE都会输出一句Button Click