Seite 1 von 1
woher kommt der Parameter?
Verfasst: Samstag 17. Februar 2024, 18:06
von hubgra
import tkinter as tk
root = tk.Tk()
x = tk.DoubleVar()
def setX():
x.set(w1.get())
w1 = tk.Scale(root, from_=-10, to=10, orient=tk.HORIZONTAL, command = setX)
w1.pack()
setX()
print(x.get())
es gibt eine Fehlermeldung:
TypeError: setX() takes 0 positional arguments but 1 was given
Re: woher kommt der Parameter?
Verfasst: Samstag 17. Februar 2024, 18:09
von /me
Was meinst du, wofür "command = setX" gut ist und was es tut? Und warum hast du es nach über 3 Dutzend Postings immer noch nicht geschafft den Button für die Formatierung des Python-Quelltextes zu finden?
Re: woher kommt der Parameter?
Verfasst: Samstag 17. Februar 2024, 18:17
von hubgra
setX soll den mit scale eingestellten Wert der Variablen x zuordnen.
Um einen Text zu Übermitteln, kopiere ich ihn und füge ihn bei " ein. Warum das ident nicht übernommen wird, weiß ich nicht.
Re: woher kommt der Parameter?
Verfasst: Samstag 17. Februar 2024, 18:38
von hubgra
Code: Alles auswählen
import tkinter as tk
root = tk.Tk()
x = tk.DoubleVar()
def setX():
x.set(w1.get())
w1 = tk.Scale(root, from_=-10, to=10, orient=tk.HORIZONTAL, command = setX)
w1.pack()
setX()
print(x.get())
root.mainloop()
so sieht es besser aus
Re: woher kommt der Parameter?
Verfasst: Samstag 17. Februar 2024, 18:56
von __blackjack__
@hubgra: Der Parameter kommt vom `Scale`. Nimm den doch einfach mal entgegen und gib ihn aus. Dann weisst Du wie `setX()` nicht nur einfacher wird, sondern überflüssig. Und danach kannst Du dann `command` vergessen und gleich `variable` verwenden.
Re: woher kommt der Parameter?
Verfasst: Samstag 17. Februar 2024, 19:27
von hubgra
Code: Alles auswählen
import tkinter as tk
root = tk.Tk()
x = tk.DoubleVar()
w1 = tk.Scale(root, from_=-10, to=10, orient=tk.HORIZONTAL, variable = x)
w1.pack()
print(x.get())
root.mainloop()
als Ausgabe erscheint nur einmal 0.0, wo bleibt der mainloop?
Re: woher kommt der Parameter?
Verfasst: Samstag 17. Februar 2024, 20:10
von __blackjack__
@hubgra: Natürlich erscheint die Ausgabe nur einmal. Warum sollte sie mehr als einmal erscheinen? Der `mainloop()` kommt nach dieser einen Ausgabe.