我正在尝试编写一个脚本,用英语提问,然后显示其含义。我可以问这个问题,但答案窗口没有显示出来。我编写的代码到目前为止。在第二个窗口中,它像新页面一样启动。我怎么修改它?现在,它显示了标签,但按钮似乎没有。
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()
答案 0 :(得分:2)
所以我从你的问题中得到的是你有第一个带有Kelime问题的窗口,并且你想在点击提交按钮后在你的create_widgets()
函数中打开另一个带有else子句的窗口。这里的问题是,当您运行root_close()
时,您基本上终止了整个程序(程序运行是因为根位于由root.mainLoop()
创建的循环上)。如果要在关闭另一个窗口时打开一个窗口,请查看Closing current window when opening another window
。