欢迎访问宙启技术站
智能推送

使用tkinter.ttk创建复选框和单选框

发布时间:2023-12-16 04:32:05

Tkinter是Python的标准图形用户界面(GUI)库之一,而其中的ttk模块则提供了一套更现代化和主题管理的界面控件,包括复选框和单选框。本文将介绍如何使用tkinter.ttk创建复选框和单选框,并给出相应的使用示例。

首先,我们需要导入tkinter和ttk模块:

import tkinter as tk
from tkinter import ttk

然后,我们可以创建一个新的界面窗口:

window = tk.Tk()
window.title("Checkbox and Radiobutton Example")

接下来,我们可以使用ttk模块中的Checkbutton来创建复选框。复选框可以有一个或多个选项,用户可以选择其中的一个或多个。下面是一个创建复选框的例子:

# 创建一个布尔变量用于跟踪复选框的状态
check_var_1 = tk.BooleanVar()
check_var_2 = tk.BooleanVar()
check_var_3 = tk.BooleanVar()

# 创建复选框并将其关联到布尔变量
check_1 = ttk.Checkbutton(window, text="Option 1", variable=check_var_1)
check_2 = ttk.Checkbutton(window, text="Option 2", variable=check_var_2)
check_3 = ttk.Checkbutton(window, text="Option 3", variable=check_var_3)

# 设置复选框的默认状态
check_1.select()
check_3.select()

# 将复选框放置在界面上
check_1.pack()
check_2.pack()
check_3.pack()

在上面的例子中,我们创建了三个复选框,并将它们分别关联到三个布尔变量。我们还使用select()方法将其中的两个复选框设置为默认选中状态。

接下来,我们可以使用ttk模块中的Radiobutton来创建单选框。单选框是一组选项,用户只能选择其中的一个。下面是一个创建单选框的例子:

# 创建一个整数变量用于跟踪单选框的状态
radio_var = tk.IntVar()

# 创建单选框并将其关联到整数变量
radio_1 = ttk.Radiobutton(window, text="Option 1", variable=radio_var, value=1)
radio_2 = ttk.Radiobutton(window, text="Option 2", variable=radio_var, value=2)
radio_3 = ttk.Radiobutton(window, text="Option 3", variable=radio_var, value=3)

# 设置单选框的默认选项
radio_2.select()

# 将单选框放置在界面上
radio_1.pack()
radio_2.pack()
radio_3.pack()

在上面的例子中,我们创建了三个单选框,并将它们关联到一个整数变量。我们使用value参数为每个单选框指定一个 的值,并使用select()方法将其中的一个单选框设置为默认选中状态。

最后,我们可以运行界面循环以启动界面窗口,使用户能够与复选框和单选框进行交互:

window.mainloop()

下面是一个完整的示例程序,它创建了一个带有复选框和单选框的界面窗口,并在用户与这些控件进行交互时显示相应的消息框:

import tkinter as tk
from tkinter import ttk
from tkinter import messagebox

def show_selected():
    selected_options = []
    
    if check_var_1.get():
        selected_options.append("Option 1")
        
    if check_var_2.get():
        selected_options.append("Option 2")
        
    if check_var_3.get():
        selected_options.append("Option 3")
        
    selected_option = radio_var.get()
    
    messagebox.showinfo("Selected Options", ", ".join(selected_options) + "
Selected radio option: " + str(selected_option))

window = tk.Tk()
window.title("Checkbox and Radiobutton Example")

check_var_1 = tk.BooleanVar()
check_var_2 = tk.BooleanVar()
check_var_3 = tk.BooleanVar()

check_1 = ttk.Checkbutton(window, text="Option 1", variable=check_var_1)
check_2 = ttk.Checkbutton(window, text="Option 2", variable=check_var_2)
check_3 = ttk.Checkbutton(window, text="Option 3", variable=check_var_3)

check_1.select()
check_3.select()

check_1.pack()
check_2.pack()
check_3.pack()

radio_var = tk.IntVar()

radio_1 = ttk.Radiobutton(window, text="Option 1", variable=radio_var, value=1)
radio_2 = ttk.Radiobutton(window, text="Option 2", variable=radio_var, value=2)
radio_3 = ttk.Radiobutton(window, text="Option 3", variable=radio_var, value=3)

radio_2.select()

radio_1.pack()
radio_2.pack()
radio_3.pack()

button = ttk.Button(window, text="Show Selected", command=show_selected)
button.pack()

window.mainloop()

以上示例程序使用messagebox模块显示了用户选择的复选框和单选框的选项,当用户点击"Show Selected"按钮时触发show_selected函数。