tkinter系列:
tkinter的操作逻辑和其他UI工具差不多,都是在设计好窗口之后,通过一个无限循环的函数将窗口持续不断地呈现给屏幕,所以最简单的tkinter程序为
import tkinter
win = tkinter.Tk()
win.title("test") #窗口标题
win.geometry("600x200+200+20") #窗口尺寸为600x200
win.mainloop() #无限循环的函数
而窗口内容的组织方式也很直观,就是将子控件放在父控件上,而窗口相当于根控件,是所有控件的族中。
tkinter中共有16个核心部件:
Button | |||
Label | Message | Entry | Text |
Frame | Canvas | Toplevel | messageBox |
Listbox | Checkbutton | Radiobutton | |
Menu | Menubutton | ||
scale | scrollbar |
接下来实现一个最简单的功能——点击按钮改变标签的颜色。
import tkinter
from tkinter import ttk
win = tkinter.Tk()
win.title("started")
win.geometry("600x200+200+20")
# 设置标签,win为其父控件,text为标签中的文字;bg为背景色
label = tkinter.Label(win,text="Label",bg="green")
label.grid(row=0,column=0) #这是一种网格布局方式
def btn_click():
label.bg="red"
button = tkinter.Button(win,text="Button",command=btn_click)
button.grid(row=0,column=1)
win.mainloop()
其中,tkinter.Label为标签控件,用于展示文字,其中text参数为标签内容,bg为其颜色。
tkinter.Button为按钮控件,其text为按钮上的文本,command为点击时触发的事件,被定义为btn_click,其功能为点击按钮,改变标签颜色。
tkinter中的控件,其初始化函数的第一个参数,基本都是父控件,上面的代码中,win就是按钮和标签的父控件,也就是名为started的窗口。
Label可以显示内置的位图,
import tkinter
from tkinter import ttk
win = tkinter.Tk()
win.geometry("400x150+200+20")
# 设置标签,win为其父控件,text为标签中的文字;bg为背景色
imgs = ["error", "hourglass", "info" ,
"questhead", "question", "warning",
"gray12", "gray25", "gray50", "gray75"]
for i in range(len(imgs)):
tkinter.Label(win, width=50, height=25,
bitmap=imgs[i]).grid(row=int(i/5), column=i%5)
win.mainloop()