首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在Tkinter中单击校验按钮后显示消息?

如何在Tkinter中单击校验按钮后显示消息?
EN

Stack Overflow用户
提问于 2022-07-08 17:55:56
回答 1查看 84关注 0票数 0

我想知道如何才能在单击校验按钮后得到显示的消息。说些你选择了1-3的话。有什么想法吗?

代码语言:javascript
复制
     msg1 = f"How many pairs of shoes do you have?\n"
        self.text_widget.configure(state=NORMAL)
        self.text_widget.insert(END, msg1, 'person_text')
        self.text_widget.configure(state=DISABLED)
       
        var1 = tk.StringVar()
        box1 = tk.Checkbutton(self.window, variable = var1, offvalue="", onvalue="1-3", text = '1-3')
        
        var2 = tk.StringVar()
        box2 = tk.Checkbutton(self.window, variable = var2, offvalue="", onvalue="4-7", text = '4-7')
        
        var3 = tk.StringVar()
        box3 = tk.Checkbutton(self.window, variable = var3, offvalue="", onvalue="10+", text = '10+')
        
        self.text_widget.window_create("5.0", window = box1)
        self.text_widget.window_create("5.0", window = box2)
        self.text_widget.window_create("5.0", window = box3)
EN

回答 1

Stack Overflow用户

发布于 2022-07-08 18:33:11

我可能建议使用ttk.Radiobutton小部件而不是tk.Checkbutton,因为这些选项似乎相互排斥。另外,您只需要一个tk.StringVar()就可以以这种方式存储选择值。

代码语言:javascript
复制
import tkinter as tk
import tkinter.messagebox as tkm
from tkinter import ttk


def on_btn_change() -> None:
    """This function is called when a selection is made"""
    selection=btn_var.get()  # fetch the selected value
    tkm.showinfo(  # show the dialog message
        title='Selection Made',
        message=f'You selected {selection}'
    )


btn_var = tk.StringVar()  # variable to store the button selection
buttons = ['1-3', '4-6', '7-9', '10+']  # button names / values

for name in buttons:  # create buttons
    ttk.Radiobutton(
        root,  # or whatever your tk.Tk() instance is called
        text=name,
        value=name,
        variable=btn_var,  # store the selection in 'btn_var'
        command=on_btn_change,  # this function is called each time the button changes
        state=tk.NORMAL  # not required, but it doesn't hurt anything
    ).pack()  # remember to 'pack()' or nothing will show up!

编辑--只是想说这只是一个例子,显然不会按原样运行。另外,如果您正在使用类构建您的Tk应用程序(您似乎--这一点对您很好),那么您需要将self作为参数添加到on_btn_change()中,例如:def on_btn_change(self) -> None: . . .,您可能希望分别将btn_varbuttons更改为self.btn_varself.buttons

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72915246

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档