我有以下 GUI 代码,我无法开始工作。我希望它执行以下操作:
- 对于提交功能,我希望它检查 Val1 或 Val2 是否为空,然后警告用户并暂停该功能以允许用户输入一个值,然后执行该功能的其余部分。这包括关闭 GUI(我不知道该怎么做,除了手动关闭它)。
我还希望 GUI 从类中返回 Val1 和 Val2。代码的最后一行是“print Total”,这是我给返回值起的名字。
import Tkinter import tkMessageBox class Values(Tkinter.Tk): def __init__(self,parent): Tkinter.Tk.__init__(self,parent) self.parent = parent self.initialize() def initialize(self): self.grid() stepOne = Tkinter.LabelFrame(self, text=" 1. Enter Values ") stepOne.grid(row=0, columnspan=7, sticky='W',padx=5, pady=5, ipadx=5, ipady=5) Val1Lbl = Tkinter.Label(stepOne,text="Value 1") Val1Lbl.grid(row=0, column=0, sticky='E', padx=5, pady=2) Val1Txt = Tkinter.Entry(stepOne) Val1Txt.grid(row=0, column=1, columnspan=3, pady=2, sticky='WE') Val2Lbl = Tkinter.Label(stepOne,text="Value 2") Val2Lbl.grid(row=1, column=0, sticky='E', padx=5, pady=2) Val2Txt = Tkinter.Entry(stepOne) Val2Txt.grid(row=1, column=1, columnspan=3, pady=2, sticky='WE') def submit(): Val1=Val1Txt.get() if Val1 == '': Win2=Tkinter.Tk() Win2.withdraw() tkMessageBox.showinfo(message="Value 1 is empty") ##Stop submit from going any further.Allow user to enter a value and then ##carryout. Val2=Val2Txt.get() if Val2 == '': Win2=Tkinter.Tk() Win2.withdraw() tkMessageBox.showinfo(message="Value 2 is empty") ###Stop submit from going any further.Allow user to enter a value and then ##carryout ###Close GUI (Part of submit function) return Val1,Val2 SubmitBtn = Tkinter.Button(stepOne, text="Submit",command=submit) SubmitBtn.grid(row=4, column=3, sticky='W', padx=5, pady=2) if__name__== "__main__": app = Values(None) app.title('Values') app.mainloop() ###Do something with returned values Total = Values##Is this the correct way of getting the returned values? print Total