1
avg_frame
が表示されない以外はすべて動作します。これはPythonを使ったGUIプログラムでの私の2回目の試みですので、私は忘れてしまったものや忘れてしまったものを確かめません。 StringVar()
を初めて使用したことがあります。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()
私は助けに感謝します!急いで行われることを見るために目の "第二のセット"を持っていることは常に良い! – Drew1970