2017-06-26 5 views
0


英語で単語を尋ねてその意味を示すスクリプトを作成しようとしています。質問をすることはできますが、回答ウィンドウは表示されません。コード私は以下のように書いています。 2番目のウィンドウでは、新しいページのように開始します。どうすれば修正できますか?今、それはラベルを示していますが、ボタンは見えません。別のウィンドウを閉じて開きます

from tkinter import * 


class Application(Frame): 
    def __init__(self, master): 
     """Initialize the Frame""" 
     Frame.__init__(self, master) 
     self.grid() 
     self.button_clicks = 0 # count the number of button clicks 
     self.create_widgets() 

    def root_close(self): 
     global root 
     root.destroy() 
     self.button_clicky() 

    def create_widgets(self): 
     """Button displays number of clicks""" 
     if clicker % 2 == 0: 
      self.soru = Label(self, text="Kelime: " + kelime) 
      self.soru.grid(row=0, column=0, columnspan=2, sticky=W) 

      self.btn_submit = Button(self, text="Submit", command=self.root_close) 
      self.btn_submit.grid(row=3, column=1, sticky=W) 
     else: 
      self.cevap = Label(self, text="Kelimenin türkçe anlamları:\n" + anlam) 
      self.cevap.grid(row=0, column=0, columnspan=2, sticky=W) 

      self.btn_okay = Button(self, text="Bildim", command=self.dogru) 
      self.btn_submit.grid(row=3, column=0, sticky=W) 

      self.btn_okay = Button(self, text="Bilemedim", command=self.yanlis) 
      self.btn_submit.grid(row=3, column=2, sticky=W) 

    def button_clicky(self): 
     global clicker 
     clicker += 1 

    def dogru(self): 
     #will do stuff 
     self.root_close() 

    def yanlis(self): 
     self.root_close() 


clicker = 0 
kelime = "apple" 
anlam = "elma" 
root = Tk() 
root.title("Ask word") 
root.geometry("200x85") 
app = Application(root) 

root.mainloop() 

答えて

2

それでは、私はあなたの質問から取得することで、Kelimeの質問との最初のウィンドウを持っている、とあなたが送信ボタンをクリックすると、あなたのcreate_widgets()関数内の他の句で別のウィンドウを開くようにしたいということです。ここで問題となるのは、root_close()を実行しているときに、基本的にはプログラム全体が終了していることです(プログラムが実行されるのは、ルートがroot.mainLoop()で作成されたループ上にあるためです)。もう一方のウィンドウを閉じるときに1つのウィンドウを開くには、Closing current window when opening another window をチェックしてください。

関連する問題