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()
...
此外,计算平均值的线在数学上是错误的。你错过了括号。
:)


我感谢你的帮助!总是好的,有一双“第二套”的眼睛来审视匆忙完成的事情!!!我感谢你的帮助!总是好的,有一双“第二套”的眼睛来审视匆忙完成的事情!!!