Tkinter 组件详解之Checkbutton
-
Checkbutton(多选按钮)组件用于实现确定是否选择的按钮。Checkbutton 组件可以包含文本或图像,你可以将一个 Python 的函数或方法与之相关联,当按钮被按下时,对应的函数或方法将被自动执行。
-
Checkbutton 组件仅能显示单一字体的文本,但文本可以跨越多行。另外,还可以为其中的个别字符加上下划线(例如用于表示键盘快捷键)。默认情况下,tab 按键被用于在按钮间切换。
用法
参考Button的用法
使用 Checkbutton,你必须创建一个 Tkinter 变量用于存放按钮的状态
intvar():属于Tkinter下的对象。用于处理整型。不需要跟踪变量的值的变化。
stringvar():StringVar并不是python内建的对象,而是属于Tkinter下的对象。要跟踪变量的值的变化,以保证值的变更随时可以显示在界面上。
import tkinter as tk
root = tk.Tk()
# 存放按钮的状态
var = tk.IntVar()
def callback():
print("我被调用了!")
c = tk.Checkbutton(root, text="哈哈哈哈哈哈", variable=var, command=callback)
c.grid(row=0, column=0)
tk.mainloop()
Tkinter组件详解之Radiobutton
-
Radiobutton(单选按钮)组件用于实现多选一的问题。Radiobutton 组件可以包含文本或图像,每一个按钮都可以与一个 Python 的函数或方法与之相关联,当按钮被按下时,对应的函数或方法将被自动执行。
-
Radiobutton 组件仅能显示单一字体的文本,但文本可以跨越多行。另外,还可以为其中的个别字符加上下划线(例如用于表示键盘快捷键)。默认情况下,tab 按键被用于在按钮间切换。
-
每一组 Radiobutton 组件应该只与一个变量相关联,然后每一个按钮表示该变量的单一值。
用法
如果按钮(选项)比较多,强烈建议使用以下方式来初始化 Radiobutton 组件
import tkinter as tk
master = tk.Tk()
GIRLS = [
("西施", 1),
("王昭君", 2),
("貂蝉", 3),
("杨玉环", 4)]
v = tk.IntVar()
def callback():
print("我被调用了!")
for girl, num in GIRLS:
b = tk.Radiobutton(master, text=girl, variable=v, value=num, command=callback)
b.pack(anchor="w") # 方向向西
master.mainloop()
上图是一个普通的单选按钮样式,如果将它的 indicatoron 选项设置为 False,Radiobutton 的样式就会变成普通按钮的样式了
for girl, num in GIRLS:
b = tk.Radiobutton(master, text=girl, variable=v, value=num, command=callback, indicatoron=False)
b.pack(fill='x') # "x"表示水平填充