初学者 - GUI切换按钮

时间:2013-12-12 15:30:55

标签: python button text tkinter toggle

请问一点帮助吗?我创建了一个带有切换按钮的GUI,用于切换LED,LED熄灭。

我现在要做的是添加一些代码来更改按钮的文本,因为它在两种状态之间切换。

我查了一些例子,但我不知道如何或在哪里添加代码以使按钮文本切换。

感谢您的帮助。

我的代码......

# Idle 07_02_LED ON using GUI
from time import sleep

from Tkinter import *

class App:

    def __init__(self, master): 
        frame = Frame(master)
        frame.pack()
        Label(frame, text='Turn LED ON').grid(row=0, column=0)

        Label(frame, text='Turn LED OFF').grid(row=1, column=0)

        button = Button(frame, text='LED 0 ON', command=self.convert0)
        button.grid(row=2, columnspan=2)


    def convert0(self, tog=[0]):

        tog[0] = not tog[0]
        if tog[0]:
        print('LED 0 OFF')

        else:
        print('LED 0 ON')

root = Tk()

root.wm_title('LED on & off program')

app = App(root)

root.mainloop()

1 个答案:

答案 0 :(得分:4)

你需要做两件事:

  1. 将按钮定义为self.button,使其成为App的实例属性。这样,您就可以在convert0self内访问它。

  2. 使用Tkinter.Button.config更新按钮的文字。

  3. 以下是该脚本的固定版本。我在评论框中添加了我更改的内容:

    # Idle 07_02_LED ON using GUI
    from time import sleep
    
    from Tkinter import *
    
    class App:
    
        def __init__(self, master): 
            frame = Frame(master)
            frame.pack()
            Label(frame, text='Turn LED ON').grid(row=0, column=0)
    
            Label(frame, text='Turn LED OFF').grid(row=1, column=0)
    
            ####################################################################
            self.button = Button(frame, text='LED 0 ON', command=self.convert0)
            self.button.grid(row=2, columnspan=2)
            ####################################################################
    
    
        def convert0(self, tog=[0]):
    
            tog[0] = not tog[0]
            if tog[0]:
            #########################################
                self.button.config(text='LED 0 OFF')
            #########################################
    
            else:
            #########################################
                self.button.config(text='LED 0 ON')
            #########################################
    
    root = Tk()
    
    root.wm_title('LED on & off program')
    
    app = App(root)
    
    root.mainloop()