Im试图让我的RadioButton工作并返回一些东西。那么要更清楚一点,我希望它能像这样。用户选择2 Joueur或3 Joueur,然后选择Sans或Avec,然后按Jouer按钮,程序迅速到达下一个窗口,但无法弄清楚。这里的代码即时工作。如何让RadioButton工作
我的程序是一个使用tkinter作为界面的PokerDice游戏。我是法国人,所以这就是为什么变数都是法文的。
感谢您的帮助提前
class PokerDice(Tk):
def __init__(self):
Tk.__init__(self)
programme = Frame()
programme.pack(side="top", fill="both", expand=True)
programme.grid_rowconfigure(0, weight=5)
programme.grid_columnconfigure(0, weight=5)
self.pages = {}
for unePage in (DebuterProgramme, PageInstructions, PartiesDePoker, LancerParties):
page_de_demarrage = unePage(programme, self)
self.pages[unePage] = page_de_demarrage
page_de_demarrage.grid(row=0, column=0, sticky="nsew")
self.voir_pages(DebuterProgramme)
def voir_pages(self, cont):
voir_page_de_demarrage = self.pages[cont]
voir_page_de_demarrage.tkraise()
class DebuterProgramme(Frame):
def __init__(self, parent, controller):
Frame.__init__(self, parent)
label = Label(self, text="Poker D'As", font=LARGE_FONT)
label.pack(pady=10, padx=10)
button_instructions = Button(self, text="Instructions",
command=lambda: controller.voir_pages(PageInstructions))
button_instructions.pack()
button_jouer = Button(self, text="Jouer",
command=lambda: controller.voir_pages(PartiesDePoker))
button_jouer.pack()
button_jouer = Button(self, text="Quitter", command=quit)
button_jouer.pack()
class PageInstructions(Frame):
def __init__(self, parent, controller):
Frame.__init__(self, parent)
label = Label(self, text="Instructions", font=LARGE_FONT)
label.pack(side="top", fill="both", expand=True, pady=10, padx=10)
var = StringVar()
text = Message(self, textvariable=var, font=NORMAL_FONT)
var.set("\n1. Vous devez choisir le nombres de joueurs pour la partie."
"\n\n2. Vous devez choisir si les AS sont des jokers (dés frimés)."
"\n\n3. Losque la partie seras debute vous devez inscrire les noms "
"des joueurs dans les cases respectives."
"\n\n4. Le premier joueur lanceras les dés un maximum de 3 fois,"
" le deuxième joueurs auras le même nombres de lancers que le joueur 1."
" Il est avantangeux d'être le premier a jouer."
"\n\n5. "
"\n\n6. Vous devez inscrire les changements de dés de cette façon. "
"exemple : 1,2,3 ou appuyer sur la touche [ENTER] pour relancer aucun dés"
"\n\n7. Le but du jeu de Poker D'AS est d'avoir les meilleurs combinaisons de dés possibles."
"\n\n8. Voici une liste des meilleurs combinaisons de dés possible en ordre"
"décroissant."
"\n\nQuinton (5 dés même valeur)"
"\n\nCarre (4 dés de même valeur)"
"\n\nFull (3 dés de même valeur et une paire)"
"\n\nBrelan (3 dés de même valeur)"
"\n\nSequence (soit du dés 9 a ROI ou 10 a AS)"
"\n\nDeux paires (2 dés de même valeur + 2 dés de même valeur)"
"\n\nUne Paire (2 dés de même valeur)"
"\n\n")
text.pack()
button_retour = Button(self, text="Retour", command=lambda: controller.voir_pages(DebuterProgramme))
button_retour.pack()
class PartiesDePoker(Frame):
def __init__(self, parent, controller):
Frame.__init__(self, parent)
label = Label(self, text="Vous voulez combien de joueurs ? ", font=LARGE_FONT)
label.grid(row=0, column=0, padx=10, pady=10)
button_joueur2 = Radiobutton(self, text="2 Joueurs", command=lambda: controller.voir_pages(LancerParties))
button_joueur2.grid(row=0, column=1, padx=10, pady=10)
button_joueur3 = Radiobutton(self, text="3 Joueurs")
button_joueur3.grid(row=0, column=2, padx=10, pady=10)
label = Label(self, text="Voulez-vous jouer sans frimes ou avec frimes ?", font=LARGE_FONT)
label.grid(row=1, column=0, padx=10, pady=10)
button_oui = Radiobutton(self, text="Sans")
button_oui.grid(row=1, column=1, padx=10, pady=10)
button_non = Radiobutton(self, text="Avec")
button_non.grid(row=1, column=2, padx=10, pady=10)
button_retour = Button(self, text="Retour", command=lambda: controller.voir_pages(DebuterProgramme))
button_retour.grid(row=2, column=2, padx=10, pady=10)
button_jouer = Button(self, text="Jouer", command=lambda: controller.voir_pages(LancerParties))
button_jouer.grid(row=2, column=1, padx=10, pady=10)
class LancerParties(Frame):
def __init__(self, parent, controller):
Frame.__init__(self, parent)
label_joueur_1 = Label(self, text="Joueur # 1")
label_joueur_1.grid(row=0, column=0, padx=10, pady=10)
nom_joueur_1 = Entry(self)
nom_joueur_1.grid(row=0, column=1)
label_joueur_2 = Label(self, text="Joueur # 2")
label_joueur_2.grid(row=1, column=0, padx=10, pady=10)
nom_joueur_2 = Entry(self)
nom_joueur_2.grid(row=1, column=1)
label_joueur_3 = Label(self, text="Joueur # 3")
label_joueur_3.grid(row=2, column=0, padx=10, pady=10)
nom_joueur_3 = Entry(self)
nom_joueur_3.grid(row=2, column=1)
button_lancer_partie = Button(self, text="Lancer la partie",
command=lambda: controller.voir_pages(DebutDeLaPartie))
button_lancer_partie.grid(row=3, column=1, padx=10, pady=10)
class DebutDeLaPartie(Frame):
def __init__(self, parent):
Frame.__init__(self, parent)
pass
pokerAs = PokerDice() pokerAs.mainloop()
如果您提供有关当前代码的信息以及您面临的问题,这对其他人会有所帮助。 –
请务必阅读并理解[问]以及如何创建[mcve]。 – ImportanceOfBeingErnest