2010-10-14 1 views
4

Я делаю меню с помощью Tkinter, но я хотел поставить "add_checkbutton" вместо "add_command" в параметры меню, но проблема в следующем: как снять снимок/выбрать флажок?Настройка параметров меню с помощью Checkbutton в Tkinter?

menu = Menu(parent) 

parent.config(menu=menu) 

viewMenu = Menu(menu) 

menu.add_cascade(label="View", menu=viewMenu) 
viewMenu.add_command(label = "Show All", command=self.showAllEntries) 
viewMenu.add_command(label="Show Done", command= self.showDoneEntries) 
viewMenu.add_command(label="Show Not Done", command = self.showNotDoneEntries) 
+0

Вы имеете в виду вручную (с помощью мыши) или программно? –

+0

программно. – itsaboutcode

ответ

8

Вы должны связать переменную с элементом (ами) Checkbutton, а затем установить переменную, чтобы вызвать пункт для проверки или бесконтрольно. Например:

import tkinter as tk 

parent = tk.Tk() 

menubar = tk.Menu(parent) 
show_all = tk.BooleanVar() 
show_all.set(True) 
show_done = tk.BooleanVar() 
show_not_done = tk.BooleanVar() 

view_menu = tk.Menu(menubar) 
view_menu.add_checkbutton(label="Show All", onvalue=1, offvalue=False, variable=show_all) 
view_menu.add_checkbutton(label="Show Done", onvalue=True, offvalue=0, variable=show_done) 
view_menu.add_checkbutton(label="Show Not Done", onvalue=1, offvalue=0, variable=show_not_done) 
menubar.add_cascade(label='View', menu=view_menu) 
parent.config(menu=menubar) 

parent.mainloop() 
+0

Привет, спасибо за ваш ответ. Я получаю небольшую проблему при выполнении этого, потому что я получаю сообщение об ошибке tk.BooleanVar() – itsaboutcode

+0

@itsaboutcode: возможно, потому, что вы импортируете Tkinter по-другому. Похоже, что вы импортируете все из Tkinter, поэтому вы, вероятно, можете изменить код только на «BooleanVar()». –

+0

Спасибо, человек, это сработало. – itsaboutcode

 Смежные вопросы

  • Нет связанных вопросов^_^