Anfänger-Frage

Fragen zu Tkinter.
Antworten
anja0000
User
Beiträge: 1
Registriert: Sonntag 6. Februar 2022, 00:32

Ich habe eine Startseite und eine erste Seite erstellt.

jetzt möchte ich gern, wenn man auf Seite 2 auf den Button 1 drückt ein neues Fenster aufgeht und wenn man auf den Button 2 drückt ein anderes Fenster.
Ich habe nur keine Ahnung wie ....kann mir jemand helfen ?


import tkinter as tk
from tkinter import ttk
from PIL import Image, ImageTk


def gleich():
print("gleich geht es weiter")


class MainWindow(tk.Tk):

def __init__(self):
super().__init__()

self.geometry("500x500")
self.minsize(width=700, height=250)
self.maxsize(width=900, height=750)
self.configure(bg="#FF0000")
self.title("Herzlich Willkommen")

ttk.Label(self, text="Ganz nach dem Grundgedanken von Pierre de Coubertin"
" SCHNELLER HÖHER WEITER !!!").pack()

label10 = tk.Label(self, text="Mit unserem Wissen blicken Sie vergoldeten Zeiten entgegen")
label10.pack(side="top", fill="x")
label10.pack(pady=70, padx=70)
label10.pack()

image1 = Image.open("img_1.png")
photo = ImageTk.PhotoImage(image1)

label11 = ttk.Label(self, text="Möchten Sie auch im Geld schwimmen ?", image=photo,
compound="top")
label11.pack()


button1 = ttk.Button(self, text="hier geht es weiter!", command = self.destroy)
button1.pack(side="right")
button1.pack(padx=20, pady=50)
button1.pack()

root = MainWindow()
root.mainloop(),



root = tk.Tk()

root.title("WEITER GRÖSSER SCHNELLER")
root.configure(bg="#F4A460")
root.geometry("800x500+100+100")
root.minsize(width=700, height=250)
root.maxsize(width=900, height=750)

label1 = tk.Label(root, text="Die Zukunft Ihres Unternehmens beginnt jetzt", bg="red")
label1.pack(side="top", fill="x")
label1.pack(pady=10, ipady=10)

image = Image.open("img.png").resize((300, 200))
photo = ImageTk.PhotoImage(image)

label2 = ttk.Label(root, text="Wenn Ihr Geld wachsen soll, wie Pflanzen im Frühjahr", image=photo, compound="top")
label2.pack()

label3 = tk.Label(root, text="Unser Wissen....ist Ihre Zukunft")
label3.pack(side="top", fill="x")
label3.pack(pady=10, padx=200)
label3.pack()

label4 = tk.Label(root, text="Geben Sie ihrem Unternehmen eine Chance")
label4.pack(side="top", fill="x")
label4.pack(ipady=10, padx=200)
label4.pack()


button1 = ttk.Button(root, text="Stammdaten")
button1.pack(side="right")
button1.pack(padx=20, pady=50)
button1.pack()

button2 = ttk.Button(root, text="Unternehmensanalyse")
button2.pack(side="left")
button2.pack(padx=20, pady=10)
button2.pack()

root.mainloop()
Sirius3
User
Beiträge: 17738
Registriert: Sonntag 21. Oktober 2012, 17:20

So funtionieren GUIs nicht. Man hat keinen linearen Ablauf des Programms, sondern kann nur auf Ereignisse reagieren.
Es darf im ganzen Programm nur ein Exemplar von Tk geben und auch nur einen Aufruf von mainloop.
Beim ersten mainloop erzeugst Du auch ein Tuple, mit dem Du nichts machst.
Dass Du jeweils dreimal `pack` aufrufst, ist seltsam, woher hast Du das?

Weitere Fenster leitet man von tk.Toplevel ab. Nun kommt es darauf an, ob diese als Dialog oder parallel zu anderen Fenstern benutzt werden sollen.
Antworten