gpt4 book ai didi

python - 如何通过 Tkinter 中的复选框禁用按钮

转载 作者:行者123 更新时间:2023-11-28 17:08:02 25 4
gpt4 key购买 nike

我正在研究 Python 的 GUI,但我不知道如何禁用带有复选按钮的按钮。 Python 使用哪个触发器来验证我是否标记了复选按钮?按照我写的一些代码尝试这样做,但没有成功。

抱歉我的英语不好。

from tkinter import *
from tkinter import ttk


class HelloApp:

def __init__(self, master):

self.label = ttk.Label(master, text="Hello, Tkinter!")

self.button1 = ttk.Button(master, text="Texas", command=self.texas_hello)
self.button2 = ttk.Button(master, text="Hawaii", command=self.hawaii_hello)

value_check = IntVar()

def disable_button(button):
button.config(state=DISABLED)

def enable_button(button):
button.config(state=NORMAL)

checkbutton = ttk.Checkbutton(master, variable=value_check, text='Deactivate!',
onvalue=enable_button(self.button1),
offvalue=disable_button(self.button1))

self.label.grid(row=0, column=0, columnspan=2)
self.button1.grid(row=1, column=0)
self.button2.grid(row=1, column=1)
checkbutton.grid(row=1, column=2)

print(value_check)

def texas_hello(self):
self.label.config(text='Howdy, Tkinter!')

def hawaii_hello(self):
self.label.config(text='Aloha, Tkinter!')


def main():

root = Tk()
HelloApp(root)
root.mainloop()


if __name__ == "main": main()

main()

最佳答案

command要传一个函数,这个函数就是每次有变化都会通知的函数,可以通过value_check获取status。

...
value_check = IntVar()

def disable_enable_button(button):
self.button1.config(state=DISABLED if value_check.get() else NORMAL)

checkbutton = ttk.Checkbutton(master, variable=value_check, text='Deactivate!',
command=disable_enable_button)
....

关于python - 如何通过 Tkinter 中的复选框禁用按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49724170/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com