2016-04-26 58 views
1

在Tcl中,您可以在spinbox命令中使用簡單的百分比替換%d來判斷向上或向下按鈕是否已被按下,如下所示:tkinter:如何讓Spinbox顯示是向上還是向下按鈕已被按下

spinbox .datespin -width 9 -command { 
    set way %d 
    datespin $way %W 
} 

我還是想看看如何得到同樣的事情用一個SPINBOX在Tkinter的,這似乎並不喜歡%d替代發生(它給我的語法錯誤)。迄今爲止我看到的tkinter文檔沒有幫助。有人可以告訴我如何讓Spinbox揭示向上或向下按鈕是否被推動?

回答

1

看到這個問題,因爲我正在研究別的東西。儘管這是一個古老的問題,但我還是認爲如果你還沒有在其他地方找到答案,我也可以回答它。

您必須使用通用小部件「註冊」方法(即,您可以在任何小部件上調用此方法)將Python函數封裝到Tcl包裝器中,以便使用百分比替換。 (作爲一方,您必須執行相同的操作才能在Entry窗口小部件中獲得validate命令。)

爲了向您的回調函數發送百分比替換,請指定一個元組而不僅僅是可調用元素你的替換元素作爲元組(參見下面的例子)。

import tkinter as tk 

root = tk.Tk() 

def up_or_down(direction): 
    print(direction) 

tcl_up_or_down = root.register(up_or_down) 

spinbox = tk.Spinbox(root, from_=0, to=10, command=(tcl_up_or_down, '%d')) 
spinbox.grid() 

root.mainloop() 

希望這有助於!

相關問題