【发布时间】:2014-11-24 02:48:47
【问题描述】:
我是 Pyhton GUI 的新手,并且已经使用下面的代码玩了一段时间了。下面的拉丁语到英语翻译器代码通过显示三个按钮来工作,每个按钮上都有一个拉丁词。按下时,GUI 的标签中会出现一个英文等价物。我正在尝试让输出显示在“英文翻译”的右侧,但如果按下另一个按钮,则将其替换为另一个输出。相反,在按下几个按钮后,它会一遍又一遍地显示翻译,导致框区域越来越大。有没有办法只交换输出来代替以前的输出?提前感谢您,感谢您为我找到解决方案提供的任何帮助。
import tkinter
import tkinter.messagebox
class LatConvGUI:
def __init__(self):
self.main_window = tkinter.Tk()
self.top_frame = tkinter.Frame()
self.bottom_frame = tkinter.Frame()
self.prompt_label = tkinter.Label(self.top_frame, \
text='English Translation is:')
self.prompt_label.pack(side='left')
self.sin_button = tkinter.Button(self.bottom_frame, \
text='sinister', \
command=self.convert)
self.dex_button = tkinter.Button(self.bottom_frame, \
text='dexter', \
command=self.convert2)
self.med_button = tkinter.Button(self.bottom_frame, \
text='medium', \
command=self.convert3)
self.label2 = tkinter.Label(self.bottom_frame, \
text='Latin word is:')
self.label2.pack(side='left')
self.sin_button.pack(side='left')
self.dex_button.pack(side='left')
self.med_button.pack(side='left')
self.top_frame.pack()
self.bottom_frame.pack()
tkinter.mainloop()
def convert(self):
self.label1 = tkinter.Label(self.top_frame, \
text='left')
self.label1.pack(side = 'top')
def convert2(self):
self.label3 = tkinter.Label(self.top_frame, \
text='right')
self.label3.pack(side = 'top')
def convert3(self):
self.label4 = tkinter.Label(self.top_frame, \
text='center')
self.label4.pack(side = 'top')
eng_conv = LatConvGUI()
【问题讨论】:
标签: python user-interface python-3.x tkinter