2016-02-03 1 views
0

Я столкнулся с тем, что, по моему мнению, может быть ошибкой, когда всякий раз, когда я пытаюсь создать меню (Menu) в tkinter на mac, любое меню без каскадного типа пункты - то есть menu.add_command вместо menu.add_cascade - не работают.Элементы меню некаскадного типа, не работающие на Tkinter с Mac OSX

import tkinter as tk 

def callback(): 
    print("Hello World") 

root = tk.Tk() 

menu = tk.Menu(root) 

# Adding cascade 
menu2 = tk.Menu(menu, tearoff=0) 
menu2.add_command(label="CascadeItem", command=callback) 
menu.add_cascade(menu=menu2, label="Cascade") 

# Adding non-cascade 
menu.add_command(label="NonCascade", command=callback) 

root.config(menu=menu) 

root.mainloop() 

Когда я запускаю предыдущий код, я могу видеть пункт меню «Каскад», но не пункт меню «NonCascade».

Есть ли что-то, что я делаю неправильно здесь? Это какая-то ошибка? Или Mac не поддерживает элементы меню без каскадного типа в меню?

ответ

2

Вы правы: вы не можете добавлять команды в строку меню на OSX. Нет обходного пути. С точки зрения удобства использования это плохая идея, поэтому OSX ее запрещает.

+0

Я предположил, что это так. Это имеет смысл, что вы не можете, но я знаю, что вы можете в окнах, поэтому я решил проверить. Благодарю. – RobertR

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