Tkinter 组件详解(三):Checkbutton与Radiobutton

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"表示水平填充

在这里插入图片描述

发布了60 篇原创文章 · 获赞 6 · 访问量 7746

猜你喜欢

转载自blog.csdn.net/qq_44205272/article/details/103721751