2016-04-28 11 views
2

Gibt es eine Möglichkeit, das Menü geöffnet zu halten, wenn Sie auf die Schaltfläche "check" klicken? Im Beispielprogramm, wenn Sie auf den Menüeintrag klicken, verschwindet die Menüliste, so dass Sie das Menü erneut öffnen müssen, um auf das nächste Element zu klicken. Gibt es also eine Möglichkeit, das Menü zu deaktivieren, sodass mehrere Kontrollkästchen angeklickt werden können?tkinter menü checkbutton - Verhindern des Schließens des Menüs

from Tkinter import * 

def click(): 
    pass 

root = Tk() 
menu = Menu(root) 
root.config(menu=menu) 
choicesmenu = Menu(menu,tearoff=0) 

menu.add_cascade(label="Choices", menu=choicesmenu) 
choicesmenu.add_checkbutton(label="choice1", command=click) 
choicesmenu.add_checkbutton(label="choice2", command=click) 
choicesmenu.add_checkbutton(label="choice3", command=click) 
choicesmenu.add_checkbutton(label="choice4", command=click) 
choicesmenu.add_checkbutton(label="choice5", command=click) 
choicesmenu.add_checkbutton(label="choice6", command=click) 
choicesmenu.add_checkbutton(label="choice7", command=click) 

mainloop() 
+0

Dies ist, was die 'tearoff' Option ermöglicht es - obwohl seine hässlichen und ungewohnt diese Tage Menschen. Wenn Sie für das Auswahlmenü "Abreißen" auf "Wahr" setzen, kann der Benutzer das Menü in einen temporären Dialog abbrechen und dann durch Klicken auf die Kontrollkästchen diese Dialogversion des Menüs nicht mehr schließen. Ein Redesign, um einen richtigen Dialog zu verwenden, ist jedoch wahrscheinlich sinnvoller. – patthoyts

Antwort

1

rate ich Ihnen nicht zu tun, was Sie suchen, weil Sie schauen, um stören das normale Verhalten von dem das Menü soll erfüllen. Werfen Sie einen Blick auf das Menüverhalten Ihres Browsers und Sie werden sehen, dass es sich nicht so verhält, wie Sie es möchten. Und glücklicherweise ist dies der Fall, andernfalls müssen wir, wenn Ihr Verhalten implementiert ist, einen zusätzlichen Klick ausführen, wenn wir etwas aus dem Menü auswählen, um dieses später zu verbergen.

Hinzufügen zu diesem, Sie sind völlig brechen die Principles of User Interface Design, die ich Ihnen rate zu lesen.

Sie hätten mir gesagt, dass Ihre Anwendung dieses Verhalten sowieso benötigt; Für welche Sache ist meine Antwort, noch einmal, dagegen: Wenn Sie dieses Verhalten für Ihre Anwendung brauchen, dann ist Ihr Design falsch und ich ermutige, Ihr Design zweimal zu überdenken, bevor Sie irgendetwas programmieren.

Für Ihre bloße Neugier, aber Sie einen Blick können unter: Keep a menu open in Tkinter

Verwandte Themen