Seite 1 von 1

Menupunkt nach rechts verschieben

Verfasst: Mittwoch 2. Dezember 2015, 20:52
von Landario
Servus,

Ich schreib gerade an nem kleinengroßen Programm und bin entweder zu blöd zum googlen oder um das Forum zu dursuchen.

Folgendes Problem:
Ich hab eine Menubar und möchte das der command [Beenden] ganz rechts steht, während die anderen commands und cascades links stehen bleiben.
Also ungefähr so:
[Kopf][Einstellungen][Hilfe]########################Ganmz viel Platz sodass der Beenden Button rechtsbündig ist##################[Beenden]

Wenn ich den Platz mit Seperatoren ausfülle hängt das ja wieder von der Auflösung ab ob es ganz rechts ist oder nicht.
Jemand ne Idee was ich machen könnte?

Minimalbeispiel von meinem Code: Python 3.X

Code: Alles auswählen

mainWindow = Tkinter.Tk()
mainWindow.title(ProgTitl)
mainWindow.wm_state('zoomed')
mainWindow.iconbitmap('favicon.ico')

mBar = Tkinter.Menu(mainWindow)

mDev = Tkinter.Menu(mBar)
mDev["tearoff"]=0
mDev.add_command(label="Ausschalten/Ruheposition", command=Device.Sleep)
mDev.add_command(label="Aufwachen", command=Device.Wakeup)
mDev.add_command(label="Referenzfahrt", command=Device.Homing)
    
mBar.add_cascade(label="Kopf", menu=mDev) #Dropdown "Kopf" hinzufügen
mBar.add_command(label="Einstellungen", command=Root.Settings)
mBar.add_command(label="Hilfe", command=Root.Help)
#Hier sollte der Abstand rein
mBar.add_command(label="Beenden", command=Root.Exit)

mainWindow["menu"] = mBar


mainWindow.mainloop()
P.S.: Mein erster Thread ich hoffe ich habe alles richtig gemacht und nichts vergessen ;)

Re: Menupunkt nach rechts verschieben

Verfasst: Donnerstag 3. Dezember 2015, 09:58
von Alfons Mittelmeyer
Statt Separatoren kann man auch einen Command nehmen, mit vielen Leerzeichen als Label und damit es nicht auffällt mit activebackground in Hintergrundfarbe. Aber wo es dann steht, ist fraglich. Anpassbar wäre es, indem man den Leerzeichenstring anpaßt.

Aus yposition(index) sollte man herausbekommen, ob der Menüpunkt bereits in die nächste Zeile umgebrochen wurde, oder noch nicht. Und dadurch könnte man den Leerzeichenstring anpassen.

Re: Menupunkt nach rechts verschieben

Verfasst: Donnerstag 3. Dezember 2015, 10:37
von BlackJack
Das klingt nach einem ziemlichen Hack. Kann man überhaupt davon ausgehen das die Menüzeile auf allen Plattformen umgebrochen wird? Dieser Leermenüpunkt könnte auch grafisch darauf reagieren wenn sich der Mauszeiger darüber befindet, was für den Benutzer zumindest komisch aussehen würde, wenn nicht gar irritierend wirkt.

Re: Menupunkt nach rechts verschieben

Verfasst: Donnerstag 3. Dezember 2015, 11:06
von Alfons Mittelmeyer
@BlackJack Damit er nicht grafisch reagiert, hatte ich geschrieben: activebackground in Hintergrundfarbe

Re: Menupunkt nach rechts verschieben

Verfasst: Donnerstag 3. Dezember 2015, 12:28
von Landario
@Alfons Mittelmeyer: Aber das wäre ja auch wieder vom Bildschirmauflösung/breite abhängig dann oder? Eine relative Positionierung am Rechten Bildschrimrand (unter den Windows Symbolen _ []X) anhand der Fenstergröße habe ich damit ja wieder nicht :K

Re: Menupunkt nach rechts verschieben

Verfasst: Donnerstag 3. Dezember 2015, 12:48
von Alfons Mittelmeyer
@Landario Wenn Du dafür sorgst, dass die Fenstergröße gleich breit bleibt, kannst Du den Umbruch in die nächste Zeile herausbekommen und die erforderlichen Leerzeichen entsprechend anpassen.

Es gäbe aber noch eine andere Möglichkeit:

Du machst etwas, das aussieht wie eine Menubar, etwa aus Buttons mit Relief 'flat' und öffnest dann, wenn man darauf klickt an der entsprechenden Stelle ein Popup Menü.

Mache doch einfach eine Zeile am oberen Fensterrand aus Menubuttons. Das wäre es doch, oder?

Re: Menupunkt nach rechts verschieben

Verfasst: Donnerstag 3. Dezember 2015, 13:21
von Alfons Mittelmeyer
Also, in die erste Zeile machst Du von links bis rechts einenn Frame rein und die Menüpunkte (Menubutton) positionierst Du darin mit pack left, bzw. den letzten mit pack right. Und wenn Du einen Trennstrich brauchst, machst Du eben evtl. noch einen Frame rein.

Re: Menupunkt nach rechts verschieben

Verfasst: Donnerstag 3. Dezember 2015, 13:41
von BlackJack
@Alfons Mittelmeyer: Damit verliert man dann aber das normale Verhalten auf Macs wo die Menüzeile am oberen Bildschirmrand angezeigt wird und nicht im Fenster. Und das geht nur wenn die Menüzeile eine echte Menüzeile ist und nicht als normale Elemente im Fenster angezeigt wird.

Re: Menupunkt nach rechts verschieben

Verfasst: Montag 21. Dezember 2015, 11:52
von Landario
Danke für die zahlreichen antworten!

Das Programm wird jetzt im Vollbildmodus ausgeführt sodass es nur über den Beenden Button beendet werden kann. Dann kann er auch ganz links stehen :) Die anderen Möglichkeiten waren mir ein wenig zu aufwendig beziehungsweise lieferten auch nicht ganz das gewünschte Ergebnis :)