Hallo zusammen,
auf folgende Frage habe ich trotz langer Suche keine Antwort gefunden.
Ist es nötig, wie in folgendem Beispiel von ( https://www.javatpoint.com/python-tkinter-toplevel )
für ein Toplevel-Fenster eine eigene mainloop zu erstellen ?
Oder ist die mainloop() auch für alle events im Toplevel-Fenster zuständig?
Die meisten Beispiele, die ich gefunden habe, machen das nicht...
.......................................................................................................
from tkinter import *
root = Tk()
root.geometry("200x200")
def open():
top = Toplevel(root)
top.mainloop()
btn = Button(root, text = "open", command = open)
btn.place(x=75,y=50)
root.mainloop()
............................................................................................................
Würde mich über eine Erläuterung freuen.
Gruß
Fladdermus
Toplevel eigene Mainloop() ?
-
- User
- Beiträge: 9
- Registriert: Dienstag 7. Mai 2019, 14:57
Lernen ist wie Rudern im Fluss - wer aufhört, treibt zurück.
Ja, es gibt nur ein mainloop im gesamten Programm. *-Importe sind schlecht. Man mischt keine Funktionsdefinitionen in ausführbaren Code, Keine Abkürzungen verwenden und kein place.
Code: Alles auswählen
from functools import partial
import tkinter as tk
def open_window(root):
top = tk.Toplevel(root)
def main():
root = tk.Tk()
tk.Button(root, text="open", command=partial(open_window, root)).pack()
root.mainloop()
if __name__ == '__main__':
main()
-
- User
- Beiträge: 9
- Registriert: Dienstag 7. Mai 2019, 14:57
Hallo Sirius3,
danke für die superschnelle Antwort.
Sie wirft bei mir Anfänger allerdings auch neue Fragen auf...
Warum ist * - import nicht gut ?
Lese ich ständig in im Internet veröffentlichten Beispielen.
Und was ist gegn place() einzuwenden?
Der Gui-Designer Page arbeitet auch mit place() und relativen Koordinaten.
Pack() und Grid() scheinen mir mehr "Glücksache" zu sein...
danke für die superschnelle Antwort.
Sie wirft bei mir Anfänger allerdings auch neue Fragen auf...
Warum ist * - import nicht gut ?
Lese ich ständig in im Internet veröffentlichten Beispielen.
Und was ist gegn place() einzuwenden?
Der Gui-Designer Page arbeitet auch mit place() und relativen Koordinaten.
Pack() und Grid() scheinen mir mehr "Glücksache" zu sein...
Lernen ist wie Rudern im Fluss - wer aufhört, treibt zurück.
Anders herum wird ein Schuh draus. Mit Place gebaut auf einem anderen Rechner sieht wegen anderen Schriftgrössen und DPI vermurkst aus. Pack und grid passen sich an.
Und im Internet steht halt viel scheiss. Sternchenimporte ballern dir den Namensraum mit unbekannten Namen zu. Du verlierst den Überblick was woher kommt, und riskierst Namenskollisionen. Bei tkinter sind es etwa 300 Namen. Weißt du welche? Und welche du darum nicht benutzen darfst?
Und im Internet steht halt viel scheiss. Sternchenimporte ballern dir den Namensraum mit unbekannten Namen zu. Du verlierst den Überblick was woher kommt, und riskierst Namenskollisionen. Bei tkinter sind es etwa 300 Namen. Weißt du welche? Und welche du darum nicht benutzen darfst?
-
- User
- Beiträge: 9
- Registriert: Dienstag 7. Mai 2019, 14:57
Danke für die Hinweise.
Es gibt viel, was ich noch lernen sollte.
)
Es gibt viel, was ich noch lernen sollte.

Lernen ist wie Rudern im Fluss - wer aufhört, treibt zurück.