2017-08-04 196 views
1

我有一個腳本,啓用電源後,用戶單擊「開始測試」按鈕後,「禁用」按鈕,以避免「雙擊,然後我」已經注意到,「一些如何」如果用戶執行「雙擊」我的應用程序啓動第二個操作。TKinter按鈕避免雙擊

def starttest(): 
    Button(main, text="START TEST", font=("Tahoma", 21), height=1, width=24, 
    command=starttest, state=DISABLED).place(x=55,y=40) 
    PS = serial.Serial('COM1', 9600, timeout=.1) 
    ##my code here ... 

有沒有人有一個想法,我應該怎麼做才能避免這種情況呢?

+1

這看起來並不像:

... power_supply_btn = Button(... text="START TEST", command=starttest ...) power_supply_btn.place(x=55,y=40) ... 

然後使用configure()功能在您的starttest()回調配置按鈕的狀態禁用按鈕,看起來像在現有的按鈕上創建一個新的禁用按鈕 - 這仍然是處理任何排隊的鼠標點擊。保存對原始按鈕的引用,將其狀態設置爲DISABLED。 – jasonharper

回答

1

每次通過按固有按鈕調用starttest()函數,會創建一個新的按鈕小部件:這就是爲什麼它看起來像您可以無限期點擊虛假「相同」按鈕。

你應該在你的程序在其他地方創建一個按鈕:

def starttest(): 
    global power_supply_btn 
    power_supply_btn.configure(state=DISABLED) 
+0

感謝@ Billal-BEGUERADJ它的作品,我只是有一個評論,命令應該是: –

+0

高清starttest(): 全球power_supply_btn power_supply_btn.config(狀態=禁用) 「的.config代替.configure」 –

+0

不客氣。 'config()'和'configure()'執行[same](http://effbot.org/tkinterbook/tkinter-widget-configuration.htm)。 –