在 tkinter 类中创建一个切换按钮
Posted
技术标签:
【中文标题】在 tkinter 类中创建一个切换按钮【英文标题】:Create a toggle button within a tkinter class 【发布时间】:2021-06-02 21:12:03 【问题描述】:我正在尝试创建一个具有切换按钮的 Tkinter 类。我的代码如下所示。
''' '''
from tkinter import *
class test:
window = Tk()
window.title("Start/Stop Button")
window.geometry('200x100')
def clicked_rf1():
if btn_rf1['text'] == "Start":
btn_rf1.configure(text="Stop")
lbl_rf1.configure(text=" ON ", bg="green")
else:
btn_rf1.configure(text="Start")
lbl_rf1.configure(text=" OFF ", bg="red")
btn_rf1 = Button(window, text="Start", command=clicked_rf1)
btn_rf1.grid(column=1, row=1)
lbl_rf1 = Label(window, text=" OFF ", bg="red")
lbl_rf1.grid(column=2, row=1)
window.mainloop()
这给了我一个错误,说 btn_rf1 未在 clicked_rf1() 中定义。
如果我运行这段代码而不将它定义为一个类,它就可以工作。我认为这是因为 'btn_rf1' 是类属性而不是类中的变量并导致此问题,但我不知道如何解决它。感谢任何帮助
【问题讨论】:
请发布错误回溯。 【参考方案1】:试试这个:
from tkinter import *
class Test:
def __init__(self):
self.window = Tk()
self.window.title("Start/Stop Button")
self.window.geometry('200x100')
self.btn_rf1 = Button(self.window, text="Start", command=self.clicked_rf1)
self.btn_rf1.grid(column=1, row=1)
self.lbl_rf1 = Label(self.window, text=" OFF ", bg="red")
self.lbl_rf1.grid(column=2, row=1)
self.window.mainloop()
def clicked_rf1(self):
if self.btn_rf1['text'] == "Start":
self.btn_rf1.configure(text="Stop")
self.lbl_rf1.configure(text=" ON ", bg="green")
else:
self.btn_rf1.configure(text="Start")
self.lbl_rf1.configure(text=" OFF ", bg="red")
app = Test()
您没有正确使用类。阅读 this 教程,了解更多关于 Python 类及其工作原理的信息。
【讨论】:
以上是关于在 tkinter 类中创建一个切换按钮的主要内容,如果未能解决你的问题,请参考以下文章
如何在 Python Tkinter 中创建一个按钮以将整数变量增加 1 并显示该变量?