ich bin eine ziemlicher Anfänger was Python angeht und bin auf ein für mich unlösbares Problem gestoßen. Ich versuche gerade ein kleines Programm zu schreiben das, das Werfen eines Würfels simulieren soll. Dafür benutze ich das Random Modul von Python und gebe das Ergebnis mit einer messagebox von tkinter aus. Nun wollte ich aber noch die Option einbauen, dass man auswählen kann ob man einen oder zwei Würfel werfen will. Dafür nahm ich die tkinter Radiobutton Funktion, um eine Option auswählen zu können. Dann definierte ich eine Funktion die abfragen soll welche Option ausgewählt ist, und dann per if-Abfrage eine messagebox mit einem oder zwei Ergebnissen ausgeben soll. Aber wenn ich jetzt versuche diese Funktion auszuführen, passiert nichts. Ich vermute das etwas mit der If-Abfrage nicht stimmt, da alles was in der If-Abfrage passieren sollte nicht ausgeführt wird, aber alles außerhalb der Abfrage schon. Da ich aber nicht selbst drauf komme wäre meine Frage: Was mache ich falsch?
Mein Code:
Code: Alles auswählen
import tkinter as tk
from tkinter import messagebox
import random
ROOT = tk.Tk()
ROOT.title("Dice")
ROOT.geometry("380x25")
#
def closing():
ROOT.destroy()
# Radiobutton
VAR = tk.StringVar()
R_2 = tk.Radiobutton(text="2 Würfel", variable=VAR, value=2)
R_2.pack(side=tk.RIGHT)
R_1 = tk.Radiobutton(text="1 Würfel", variable=VAR, value=1)
R_1.pack(side=tk.RIGHT)
def abfrage():
if VAR.get() == 1:
print("hello")
r = random.randint(1, 6)
tk.messagebox.showinfo("Ergebnis", r)
elif VAR.get() == 2:
r_1 = random.randint(1, 6)
r_2 = random.randint(1, 6)
tk.messagebox.showinfo("Ergebnis", [r_1, r_2])
# buttons
B_1 = tk.Button(text="Würfel werfen", command=abfrage)
B_1.pack(side=tk.LEFT)
B_2 = tk.Button(text="Programm beenden", width=30, command=exit)
B_2.pack(side=tk.BOTTOM)
#
ROOT.mainloop()