Toolbar / Navigation Erstellung

Fragen zu Tkinter.
Antworten
confused
User
Beiträge: 6
Registriert: Sonntag 23. April 2017, 19:35

Einen wunderschönen guten Abend zusammen,

ich versuche seit nun geraumer Zeit ein Programm zu schreiben, welches über eine "Toolbar" am oberen Rand des BIldschirms navigiert wird. Gedanklich sieht das ganze so aus, dass ich dort fünf Icons habe, welche jeweils durch eine "Ein-Wort-Beschriftung" ergänzt werden sollen.

Wenn man nun auf das erste Icon klickt, soll unter den Icons "Seite 1" sichtbar sein, wenn das dritte Icon angeklickt wird "Seite 3" usw. Auf diesen Seiten sollen dann weiter Funktionen eingebunden sein wie zb. das hinzufügen, ändern, löschen oder anzeigen von Kundenstammdaten

Mein Problem ist nun: Wie kann ich das realisieren?
Mein bisherhiger Versuch sieht aus wie folgt:

Code: Alles auswählen

   from tkinter import *
from tkinter import ttk

def doNothing():
    print("ok ok I won't ...")

root = Tk()
root.title("Project X")
root.geometry("400x300+200+100")


# *** Creating Dropdown on Top ***

menu = Menu(root)
root.config(menu=menu)

subMenu = Menu(menu)
menu.add_cascade(label="File", menu=subMenu)
subMenu.add_command(label="New Project...", command=doNothing)
subMenu.add_command(label="Settings", command=doNothing)
subMenu.add_separator()
subMenu.add_command(label="Exit", command=doNothing)

editMenu = Menu(menu)
menu.add_cascade(label="Edit", menu=editMenu)
editMenu.add_command(label="Redo", command=doNothing)

# *** Creating Tabs ***

nb = ttk.Notebook(root)
nb.pack()

page1=ttk.Frame(nb)
page1.pack(fill=BOTH, expand=TRUE)

nb.add(page1, text="Übersicht")
canvas = Canvas(page1, width=400, height=400)
nb.add(page1, text="Übersicht")
page2=ttk.Frame(nb)
nb.add(page2, text="Kunden")
page3=ttk.Frame(nb)
nb.add(page3, text="Katalog")
page4=ttk.Frame(nb)
nb.add(page4, text="Layouts")
page5=ttk.Frame(nb)
nb.add(page5, text="Hilfe")



# *** Status Bar ***

status = Label(root, text="Preparing to do nothing...", bd=1, relief=SUNKEN, anchor=W)
status.pack(side=BOTTOM, fill=X)

root.mainloop()
Wenn ich das auf diesem wege mache, bin ich mit dem Ergebnis aber eher nicht zufrieden. Daher glaube / hoffe ich, dass es einen eleganteren Weg gibt um dieses Problem zu lösen.

Freundliche Grüße
Confused

Falls es einen anderen weg gibt, welcher nicht mit TKinter erstellt wird, bin ich auch dem nicht unbedingt abgeneigt.
Alfons Mittelmeyer
User
Beiträge: 1715
Registriert: Freitag 31. Juli 2015, 13:34

confused hat geschrieben:Gedanklich sieht das ganze so aus, dass ich dort fünf Icons habe, welche jeweils durch eine "Ein-Wort-Beschriftung" ergänzt werden sollen.
Habe das einmal ausprobiert. Hat nicht hingehauen. Entweder habe ich ein Icon oder einen Text, aber nicht beides zugleich. Da müßte dann wohl das Icon gleich den Text mitenthalten, oder?
confused
User
Beiträge: 6
Registriert: Sonntag 23. April 2017, 19:35

Das wäre wahrscheinlich noch das geringste Problem, die Bezeichnung zu integrieren.

Mein Hauptproblem liegt darin, diese Navigation überhaupt zu realisieren :)
confused
User
Beiträge: 6
Registriert: Sonntag 23. April 2017, 19:35

Und ich sehe gerade: der Teil mit dem canvas im Notebook war nur experimentell, eigentlich sollte der hier nicht mit drin sein. Ups!
Alfons Mittelmeyer
User
Beiträge: 1715
Registriert: Freitag 31. Juli 2015, 13:34

confused hat geschrieben:Mein Hauptproblem liegt darin, diese Navigation überhaupt zu realisieren :)
Wieso? Du schreibst da etwa: subMenu.add_command(label="New Project...", command=doNothing)
Funktioniert doch genau so, dass es nichts tut. Wenn es etwas anders tun soll, wie nichts, dann musst Du das eben schreiben.
confused
User
Beiträge: 6
Registriert: Sonntag 23. April 2017, 19:35

Es geht sich nicht um das Menu ganz oben, sondern um die Toolbar, welche ich aktuell als Notebook realisiert habe, um mehrere Programmseiten zu haben.

Bin noch relativ frisch, und freue mich gerne über Schlagwörter mit denen ich mich beschäftigen kann, um es anderweitig zu realisieren
Alfons Mittelmeyer
User
Beiträge: 1715
Registriert: Freitag 31. Juli 2015, 13:34

@confused: das mit Text und icon zusammen geht schon. Ich hatte gedacht, du meinst das für das Menü. Aber Du hattest wohl die Beschriftung der Notebook Seiten gemeint. Da geht das schon.
confused
User
Beiträge: 6
Registriert: Sonntag 23. April 2017, 19:35

Ich versuche, dir das mal kurz in Paint zu zimmern, um es zu verbildlichen.

Habe leider kein Programm im Kopf, welches das so abbildet, wie ich es mir vorstellen würde =)
Alfons Mittelmeyer
User
Beiträge: 1715
Registriert: Freitag 31. Juli 2015, 13:34

confused hat geschrieben:Es geht sich nicht um das Menu ganz oben, sondern um die Toolbar, welche ich aktuell als Notebook realisiert habe, um mehrere Programmseiten zu haben.
Dann geht es ja auch nicht um die Toolbar. Denn das ist ganz einfach. Da drückt man drauf und gelangt dann auf eine andere Notebookseite.

Das Problem ist nur: Deine Notebookseiten enthalten nichts.
Diese Frames, etwa: page1=ttk.Frame(nb)
solltest Du mit Inhalt füllen, also mit Gui Elementen. Denk einmal nach, was da drin sein soll.
confused
User
Beiträge: 6
Registriert: Sonntag 23. April 2017, 19:35

https://www.pic-upload.de/view-33061020 ... g.jpg.html

Wenn ich das über das Notebook versuche zu erstellen, habe ich immer diesen Rahmen um den Inhalt.

Daher hatte ich die Hoffnung, dass man das evtl komplett anders lösen kann, was schicker aussieht und nicht ganz so rustikal
Alfons Mittelmeyer
User
Beiträge: 1715
Registriert: Freitag 31. Juli 2015, 13:34

@cunfused: Oh mein Gott, in dieser Grafk haben sie nur einen roten Rahmen gezeichnet, damit man sieht, welcher Bereich sich ändert. So sieht doch nicht der Notebook Rahmen aus.
Antworten