Ziel: Ich versuche, eine GUI mit einem Teil des Bildschirms mit "Tabs" zu erstellen (Informationen angezeigt können auf der Registerkarte geändert werden), und ein anderer Teil zeigt ständig das gleiche.Python Tkinter Registerkarten und Canvas
import ttk
import Tkinter
def demo():
#root = tk.Tk()
schedGraphics = Tkinter
root = schedGraphics.Tk()
root.title("Testing Bot")
universal_height = 606
canvas = schedGraphics.Canvas(root,width = 900, height = universal_height)
nb = ttk.Notebook(root)
# adding Frames as pages for the ttk.Notebook
# first page, which would get widgets gridded into it
page1 = ttk.Frame(nb,width = 300,height = universal_height)
# second page
page2 = ttk.Frame(nb,width = 300,height = universal_height)
nb.add(page1, text='One')
nb.add(page2, text='Two')
#
nb.grid()
day_label = schedGraphics.Label(page1, text="Day1:")
day_label.pack()
day_label.place(x=0, y=30)
day_label = schedGraphics.Label(page2, text="Day2:")
day_label.pack()
day_label.place(x=0, y=30)
canvas.create_rectangle(50,500,300,600,fill = "red")
canvas.grid()
root.mainloop()
if __name__ == "__main__":
demo()
Probleme:
In der aktuellen Konfiguration die Lappen in der Mitte des Bildschirms befindet sich nicht auf der linken Seite.
Wenn ich canvas.grid() in canvas.pack() ändere, öffnet es eigentlich kein Fenster?
Das Rechteck auf der Leinwand wird nicht angezeigt!
Vielen Dank.
Punkt # 1 ist irreführend. Zum einen sagen Sie, dass Sie Spalte 0 verwenden sollen, aber dass Sie Spalte 1 verwenden. Zweitens, nur weil es in der Spalte ganz links steht, wird nicht garantiert, dass es gegen den linken Rand des Fensters ist. –
@BryanOakley Entschuldigung für diesen Tippfehler, danke für den Hinweis. Für den zweiten Punkt, weit links, meine ich, dass nichts zwischen dem Notizbuch und der Kante sein wird, aber nicht unbedingt, dass es daran haften würde. – TrakJohnson
Danke @TrakJohnson! perfekte Antwort und macht genau das, was ich wollte. Folgefrage: Angenommen, ich möchte ein Rechteck auf der Registerkarte zeichnen (und eines, das ich auf die Leinwand ziehen könnte). Ich habe bereits den Drag-Code auf der Leinwand, aber ich kann keine Rechtecke auf der "Registerkarte" – smarttylerthecreator