【发布时间】:2017-04-05 15:24:07
【问题描述】:
我试图让我的 RadioButton 工作并返回一些东西。好吧,更清楚一点,我希望它变成这样。用户选择 2 Joueur 或 3 Joueur,然后选择 Sans 或 Avec,然后按下 Jouer 按钮,程序会快速转到下一个窗口,但不知道如何操作。这是我目前正在使用的代码。
我的程序是一个使用 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()
【问题讨论】:
-
如果您提供有关您当前代码的作用以及您面临的问题的信息,将会对其他人有所帮助。
-
请务必阅读并理解How to Ask以及如何创建minimal reproducible example。