mein Ziel ist es, ein Auswahlfenster mit drei Optionen zu erstellen, von denen eine Option auszuwählen ist und deren Wert an das nachfolgende Programm weitergegeben werden soll. Das Programmverhalten soll abhängig von der Auswahl sein.
Ich bin noch recht unerfahren mit Tkinter, habe aber schon gelesen, dass es "Best Practice" sei, das Ganze mit Objektorientierung umzusetzen.
Code: Alles auswählen
import tkinter as tk
class AuswahlFenster(tk.Tk):
def __init__(self):
tk.Tk.__init__(self)
self.wm_title("Auswahlfenster") # Fenstertitel
self.var = tk.IntVar()
tk.Button(self, text="Start", command=self.start).pack()
tk.Radiobutton(self, text="Strecke 1", variable=self.var, value=1).pack()
tk.Radiobutton(self, text="Strecke 2", variable=self.var, value=2).pack()
tk.Label(self, textvariable=self.var).pack()
def start(self):
print(self.var.get())
self.destroy()
def get_var(self):
i = var.get()
return i # ?
def main():
root = AuswahlFenster()
root.mainloop()
if __name__ == '__main__':
main()
print("TEST")
# hier soll irgendetwas mit dem "value" von den Radiobuttons gemacht werden
print(AuswahlFenster.get_var()) # -> funktioniert nicht
# z.B. (Pseudocode ab hier):
# if value == 1:
# print("A")
# elif value == 2:
# print("B")
Ich habe schon einiges ausprobiert, um den Wert zu übergeben. Von allem schien mir diese Lösung hier am plausibelsten. Leider funktioniert sie trotzdem nicht.
Das bekomme ich raus:
1
TEST
Traceback (most recent call last):
File "C:\Users\MBENES\Desktop\Daten\AGV\Python Publisher\Simulator\GUI.py", line 34, in <module>
print(AuswahlFenster.get_var())
TypeError: get_var() missing 1 required positional argument: 'self'
[Finished in 2.486s]
Den TypeError verstehe ich nicht wirklich, um ehrlich zu sein. Ich dachte, dass "self" quasi auf die eigene Klasse zeigt und in der Definition der Methode genutzt wird, um mit den Attributen der eigenen Klasse zu arbeiten.
Hoffentlich ist mein Problem klar geworden und ich hoffe, dass der ein oder andere eine Lösung hat. Ich würde mich sehr freuen.
Liebe Grüße,
Marc