2017-04-04 19 views
0

私のRadioButtonを動作させて何かを返そうとしています。さて、私はそれがこのようなものに行くことを少し明確にするために。ユーザーは2Joueurまたは3Joueurを選択し、次に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()

+0

あなたの現在のコードが何をしているのか、またあなたが直面している問題の情報を提供すれば、他の人にとっては役に立ちます。 –

+0

[ask]と[mcve]の作成方法をよく読んで理解してください。 – ImportanceOfBeingErnest

答えて

1

私は一つの問題を参照してください。あなたのRadiobuttonは接続されておらず、あなたのステータスを読む方法がありません。 Variableを作成し、グループ内のすべてRadiobuttonに使用します。 TutorialsPointから

コード:

var = IntVar() 
R1 = Radiobutton(root, text="Option 1", variable=var, value=1, 
        command=sel) 
R1.pack(anchor = W) 

R2 = Radiobutton(root, text="Option 2", variable=var, value=2, 
        command=sel) 
R2.pack(anchor = W) 

R3 = Radiobutton(root, text="Option 3", variable=var, value=3, 
        command=sel) 
R3.pack(anchor = W) 

のでvarは、ボタングループの状態を表しています。各ボタンには異なる値が与えられていますので、どのボタンが選択されているかを知ることができます。

各グループには自分自身のIntVarが必要です。変数をインスタンス変数(つまりself.var)に割り当てることで変数への参照を保持してください。

var.get()のステータスを確認する場合は、

+0

今すぐ試してみてください!簡単な質問コマンド= selは何ですか? –

+0

これは、ボタンの 'command'引数に似ています。変数の状態が変化したときのコールバックを登録します。あなたはそれを使う必要はありません。 – FamousJameous

+0

おかげでFamousJameous! –

関連する問題