2010-09-01 50 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