@yanglt7
2018-11-16T12:11:47.000000Z
字数 2745
阅读 797
Tkinter
Label 组件是用于在界面上输出描述的标签。
例 1 提示用户 “您所下载的影片含有未成年人限制内容,\n请满18周岁后再点击观看!”。
from tkinter import *# 导入 Tkinter 模块的所有内容root = Tk()# 创建一个主窗口,用于容纳整个 GUI 程序root.title("FishC Demo")# 设置主窗口对象的标题栏# 添加一个 Label 组件,Label 组件可以显示文本、图标或图片。# 创建一个文本 Label 对象,可以在字符串中直接使用 \n 对现实中的文本断行textLabel = Label(root,text="您所下载的影片含有未成年人限制内容,\n请满18周岁后再点击观看!",justify=LEFT, # 设置文字左对齐padx=10)textLabel.pack(side=LEFT)# 调用 Label 组件的 pack() 方法,用于自动调节组件自身的尺寸# side 参数可以设置 LEFT、RIGHT、TOP、和 BOTTOM 四个方位,默认是 TOP# padx、pady 选项设置偏移位置# 创建一个图像 Label 对象# 用 PhotoImage 实例化一个图片对象(支持 gif 格式的图片)photo = PhotoImage(file="18.gif")imgLabel = Label(root, image=photo)imgLabel.pack(side=RIGHT)mainloop()# 通常是程序的最后一行代码,执行后程序进入主事件循环。

例 2 将图片作为背景,文字显示在图片的上面,只需设置 compound 选项。
from tkinter import *root = Tk()photo = PhotoImage(file="bg.gif")theLabel = Label(root,text="学 Python 到 FishC!",justify=LEFT,image=photo,compound=CENTER, # 设置文本和图像的混合模式font=("微软雅黑", 20), # 设置字体和字号fg="green") # 设置文本颜色theLabel.pack()mainloop()

Button 组件是用于实现一个按钮,它的绝大多数选项和 Label 组件一样。特别的是 Button 组件可以接收用户的信息。Button 组件有一个 command 选项,用于指定一个函数或方法,当用户单击按钮的时候,Tkinter 就会自动地去调用这个函数或方法。
例 3 添加一个按钮,在按钮被单击后 Label 文本发生改变。想要文本发生改变,只需要设置 textvariable 即可。
from tkinter import *def callback():var.set("吹吧你,我才不信呢!")root = Tk()frame1 = Frame(root)frame2 = Frame(root)var = StringVar()var.set("您所下载的影片含有未成年人限制内容,\n请满 18 周岁后再点击观看!")textLabel = Label(frame1,textvariable=var,justify=LEFT)textLabel.pack(side=LEFT)photo = PhotoImage(file="18.gif")imgLabel = Label(frame1, image=photo)imgLabel.pack(side=RIGHT)# 加一个按钮theButton = Button(frame2, text="我已满 18 周岁", command=callback)theButton.pack()frame1.pack(padx=10, pady=10)frame2.pack(padx=10, pady=10)mainloop()

Checkbutton 组件就是常见的多选按钮,而 Radiobutton 则是单选按钮。
例 4
from tkinter import *root = Tk()# 需要一个 Tkinter 变量,用于表示该按钮是否被选中v = IntVar()c = Checkbutton(root, text="测试一下", variable=v)c.pack()# 如果选项被选中,那么变量 v 被赋值为 1,否则为 0# 可以用 Label 标签动态展示l = Label(root, textvariable=v)l.pack()mainloop()

例 5
from tkinter import *root = Tk()GIRLS = ["西施", "貂蝉", "王昭君", "杨玉环"]v = []for girl in GIRLS:v.append(IntVar())b = Checkbutton(root, text=girl, variable=v[-1])b.pack(anchor=W) # 左对齐# anchor 选项用于指定显示位置,可以设置为 N、NE、E、SE、S、SW、W、NW 和 CENTER 九个不同的值mainloop()

Radiobutton 组件跟 Checkbutton 组件的用法基本一致,唯一不同的是 Radiobutton 实现的是“单选”的效果。要实现这种互斥的效果,同一组内的所有 Radiobutton 只能共享一个 variable 选项,并且需要设置不同 value 选项值。
例 6
from tkinter import *root = Tk()# 如果有多个选项,可使用循环来处理LANGS = [("Python", 1),("Perl", 2),("Ruby", 3),("Lua", 4)]v = IntVar()v.set(1) # 设置默认在第 1 个for lang, num in LANGS:b = Radiobutton(root, text=lang, variable=v, value=num)b.pack(anchor = W)mainloop()

indicatoron 设置成 False,则是按钮形式,默认是圆圈形式
b = Radiobutton(root, text=lang, variable=v, value=num, indicatoron=False)b.pack(fill=X)

摘自《零基础入门学习Python》
参考链接:
An Introduction To Tkinter
Tkinter汇总
Python GUI编程(Tkinter)
Tkinter颜色方案举例
python tkinter可以使用的颜色
tkinter学习-菜单与画布
程序设计思想与方法--第五章
用Python中的tkinter模块作图