2013-12-12 69 views
4

我可以請求一些幫助嗎?我創建了一個帶切換按鈕的圖形用戶界面,該按鈕用於切換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() 

回答

4

你需要做兩件事情:

  1. 定義按鈕self.button,使其成爲App的實例屬性。這樣,您可以在convert0self之間訪問它。

  2. 使用Tkinter.Button.config更新按鈕的文本。

下面是該腳本的固定版本。我把我改變的東西放在評論框中:

# 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()