2010-09-01 1 views
0

Может ли кто-нибудь предоставить мне пример кода. Я довольно свободно говорю с python, но не могу понять это. Поэтому я буду генерировать список с помощью «х» элементов из другого кода. Мне нужно, чтобы Tkinter отображал кнопки «x», которые можно включать и выключать. Затем, как только пользователь выбрал то, что им нужно, они нажмут GO, и больше кода будет выполняться только для элементов в выбранном списке. Поэтому в основном мне просто нужно сделать что-то True или False (или 1 или 0), используя контрольные кнопки в Tkinter. Если кто-то может показать мне, как это сделать, используя Classes id love, чтобы увидеть это. Благодаря!!Простые вопросы 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() 

Посмотрите на Tkinter page на вики python.

Редактировать

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, но мне нужно х checkbuttons с уникальными переменными ... – Alex

+0

@Alex: заключите его в a for loop ... –

+0

, который не работает, потому что тогда переменные получают переназначение каждый раз и не переносятся за пределы цикла for (за исключением последнего). Решение состоит в том, чтобы определить эту функцию с добавлением дополнительной строки кода в список, который будет доступен вне функции. Тогда это работает! – Alex

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