Python GUI程序--框架未显示--使用StringVar()
除了我的Python GUI程序--框架未显示--使用StringVar(),python,python-3.x,tkinter,Python,Python 3.x,Tkinter,除了我的avg_帧未显示外,其他一切正常。这只是我第二次尝试使用Python编写GUI程序,所以我不确定我忘记或错过了什么。这是我第一次使用StringVar(),所以我可能把它弄糟了 提前谢谢你的帮助 ## Test score average # import tkinter class TestAvg: def __init__(self): ## create main window self.main_window = tkinter.Tk() ## cr
avg_帧
未显示外,其他一切正常。这只是我第二次尝试使用Python编写GUI程序,所以我不确定我忘记或错过了什么。这是我第一次使用StringVar()
,所以我可能把它弄糟了
提前谢谢你的帮助
## Test score average
#
import tkinter
class TestAvg:
def __init__(self):
## create main window
self.main_window = tkinter.Tk()
## create frames
self.test1_frame = tkinter.Frame(self.main_window)
self.test2_frame = tkinter.Frame(self.main_window)
self.test3_frame = tkinter.Frame(self.main_window)
self.avg_frame = tkinter.Frame(self.main_window)
self.button_frame = tkinter.Frame(self.main_window)
## create labels
self.test1_label = tkinter.Label(self.test1_frame, \
text="Enter the score for test 1:")
self.test1_entry = tkinter.Entry(self.test1_frame, \
width=20)
self.test1_label.pack(side='left')
self.test1_entry.pack(side='left')
## labels
self.test2_label = tkinter.Label(self.test2_frame, \
text="Enter the score for test 2:")
self.test2_entry = tkinter.Entry(self.test2_frame, \
width=20)
self.test2_label.pack(side='left')
self.test2_entry.pack(side='left')
## labels
self.test3_label = tkinter.Label(self.test3_frame, \
text="Enter the score for test 3:")
self.test3_entry = tkinter.Entry(self.test3_frame, \
width=20)
self.test3_label.pack(side='left')
self.test3_entry.pack(side='left')
self.result_label = tkinter.Label(self.avg_frame, text="Average")
self.avg = tkinter.StringVar()
self.avg_label = tkinter.Label(self.avg_frame, \
textvariable=self.avg)
self.result_label.pack(side='left')
self.avg_label.pack(side='left')
## create buttons
self.calc_button = tkinter.Button(self.button_frame, \
text="Average", \
command=self.calc_avg)
self.quit_button = tkinter.Button(self.button_frame, \
text="Quit", \
command=self.main_window.destroy)
self.calc_button.pack(side='left')
self.quit_button.pack(side='left')
self.test1_frame.pack()
self.test2_frame.pack()
self.test3_frame.pack()
self.button_frame.pack()
def calc_avg(self):
## Get test scores and store in variables
self.test1 = float(self.test1_entry.get())
self.test2 = float(self.test2_entry.get())
self.test3 = float(self.test3_entry.get())
## Calculate the average of the 3 test scores
self.test_score_avg = self.test1 + self.test2 + self.test3 / 3
## Display the avg_label
self.avg.set(str(round(self.test_score_avg, 1)))
testavg = TestAvg()
你漏了一行
...
self.test1_frame.pack()
self.test2_frame.pack()
self.test3_frame.pack()
self.avg_frame.pack() # this line
self.button_frame.pack()
...
此外,计算平均值的线在数学上是错误的。你错过了括号。:)
你漏了一行
...
self.test1_frame.pack()
self.test2_frame.pack()
self.test3_frame.pack()
self.avg_frame.pack() # this line
self.button_frame.pack()
...
此外,计算平均值的线在数学上是错误的。你错过了括号。:)
我感谢你的帮助!总是好的,有一双“第二套”的眼睛来审视匆忙完成的事情!!!我感谢你的帮助!总是好的,有一双“第二套”的眼睛来审视匆忙完成的事情!!!