Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Die `mainloop()` ist in der letzten Zeile. Warum sollte die irgendwas ausgeben? Die Ausgabe kommt in der Zeile bevor die Hauptschleife aufgerufen wird.
“There will always be things we wish to say in our programs that in all known languages can only be said poorly.” — Alan J. Perlis
@hugbra: Wie soll das funktionieren, wenn die Ausgabe passiert, bevor die Schleife gestartet ist? Oder anders: Die Ausgabe ist doch gar nicht in der Schleife?
Du schreibst gerade einen Wert auf einen Zettel, hängst den an einen Baum und fährst anschließend mit deinem Auto immer im Kreis. Aber an den einmal aufgehängten Zettel ändert das nichts.
Ja, das meine ich: auf ein Ereignis soll reagiert werden. Das Verschieben den Reglers durch den User ist doch ein Ereignis. Aber wie kann das dem System mitgeteilt werden?
Ich möchte Koordinaten (x,y) einstellen und dann soll ein plt.plot(x,y) gemacht werden; dazu brauche ich aber das x.
@hubgra: Dann musst Du eine Rückruffunktion dafür registieren. Entweder beim `Scale` oder beim `DoubleVar`, das dann jedes mal bei Veränderung aufgerufen wird und dort dann das gewünschte macht.
Edit: Ein `plt.plot()` will man dann auch eher nicht mehr machen, sondern die OOP-Schnittstelle von Matplotlib verwenden. Sonst operiert man auf globalem Zustand und handelt sich in der Regel auch ein Speicherleck ein, weil `plot()` neue `Figure`-Objekte erzeugt, sich das Modul die dann intern aber alle in einer Datenstruktur merkt.
“There will always be things we wish to say in our programs that in all known languages can only be said poorly.” — Alan J. Perlis
Ja, danke. Aber wie kann so eine Rückruffunktion aussehen?
Ich mache ja nicht einfach plt.plot(), Ich lege bisher Punkte A,B,C fest und lasse tkinter eine Funktion aufrufen, die ein Dreieck zeichntet. Ich möchte die Koordinaten der Punkte mit tk.Scale() einstellen.
'Eine Horde bedrohe nie.' -- Palindrom von chat GPT
@hubgra: Das wird letztlich auf eine Rückrufmethode hinauslaufen, denn die muss ja Zugriff auf die nötigen Objekte haben. Also eine Klasse mit einer Methode (eventuell auch einfach in der `__init__()`) wo das Dreieck erstellt wird, und eine Methode für den Rückruf wo das Dreieck mit den Werten von den Slidern aktualisiert wird. Und wie gesagt, da dann nicht `plt.plot()`, sondern was auch immer die Tk-Integration von Matplotlib zum neuzeichnen mit geänderten Werten da vorgesehen hat.
Muss es zum Zeichnen von einem Dreieck denn unbedingt Matplotlib sein? Das ginge ja eigentlich auch mit `tkinter.Canvas`.
“There will always be things we wish to say in our programs that in all known languages can only be said poorly.” — Alan J. Perlis
Ich zeine ja nicht nur Dreiecke, ich habe einen Modulfür geometrische Konstruktionen verfasst und da netze ich matplotlib.
Ich möchte einfach nur über einen mit tk.Scale() einstellten Wert verfügen. Wie nutzt man den sonst tk.Scale()?