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