2010-09-01 63 views
0

有人可以給我提供一些示例代碼。我相當流利的Python,但無法弄清楚這一點。所以我將生成一個列表,其中包含來自其他代碼的「x」元素。我需要Tkinter顯示可以打開或關閉的「x」按鈕。然後,一旦用戶選擇了他們想要的任何一個,他們將按下GO,只有列表中選定的項目纔會執行更多代碼。所以基本上我只需要通過使用Tkinter中的checkbutton來設置True或False(或1或0)。如果有人可以告訴我如何使用Classes id來做到這一點,愛看它。謝謝!!簡單的python Tkinter關於按鈕的問題

回答

2
import Tkinter as tk 

def printVar(): 
    print 'var is', var.get() 

root = tk.Tk() 
var = tk.IntVar() 
c = tk.Checkbutton(root, text='Check me', variable=var, command=printVar) 
c.pack() 
root.mainloop() 

請在Python Wiki中查看Tkinter page

編輯

import Tkinter as tk 

def printOpts(): 
    for opt, val in zip(options, checkboxes): 
     print opt + ': ' + str(bool(val.get())) 

options = ['eggs', 'apples', 'pears'] 
checkboxes = [] 

root = tk.Tk() 
for opt in options: 
    v = tk.IntVar() 
    checkboxes.append(v) 
    c = tk.Checkbutton(root, text=opt, variable=v) 
    c.pack() 

btn = tk.Button(root, text='Print options', command=printOpts) 
btn.pack() 
root.mainloop() 
+0

是這個工程的1個checkbutton,但我需要使用唯一的變量X checkbuttons ... – Alex 2010-09-01 15:20:24

+0

@Alex:括在一個for循環... – 2010-09-01 17:39:53

+0

不工作,因爲然後變量每次都被重新分配,並且不在for循環之外進行(除了最後一個)。解決方案是使用添加到列表中的附加代碼行來定義該功能,該功能將在該功能之外提供。然後它工作! – Alex 2010-09-02 01:28:55

0

使一個很好的切換按鈕

import Tkinter 


class TkToggle(Tkinter.Tk): 
    def __init__(self, parent): 
     Tkinter.Tk.__init__(self, parent) 
     self.parent = parent 
     self.initialize() 

    def initialize(self): 
     global toggle 
     toggle = 0 

     self.Button = Tkinter.Label(self, text='X', relief='ridge') 
     self.Button.pack(ipadx=15,ipady=15) 
     self.Button.bind('<ButtonRelease-1>', self.Toggle) 

    def Toggle (self, event): 
     global toggle 

     if toggle == 0: 
      toggle = 1 
      self.Button.configure(text = '') 
      print 'A' 

     else: 
      toggle = 0 
      self.Button.configure(text = 'X') 
      print 'B' 

if __name__ == "__main__": 
    app = TkToggle(None) 
    app.mainloop() 
+0

嘿,效果很好,但再次以這種格式,只允許一個切換按鈕,而我想製作x切換按鈕。只需在按鈕功能中列出每個按鈕的獨特信息即可。謝謝! – Alex 2010-09-10 03:00:58