我想制作一个控制系统,但是有问题。我希望强制填写用户名和电话号码部分,并且电话号码部分必须为整数。我不知道该怎么办。
from tkinter import *
class GUI(Frame):
def __init__(self, parent):
self.parent = parent
Frame.__init__(self, parent)
# self.db = dbm.open("captions.db","c")
self.username = StringVar()
self.phone_number = IntVar()
self.initUI(parent)
def initUI(self, parent):
self.label1 = Label(self,text = "UserName:")
self.label1.grid()
self.entry = Entry(self,textvariable = self.username)
self.entry.grid()
self.label2 = Label(self, text="Phone Number:")
self.label2.grid()
self.entry1 = Entry(self,textvariable = self.phone_number)
self.entry1.grid()
self.button = Button(self,text = "Check")
self.button.grid()
self.grid()
def mainfunction():
root = Tk()
root.title("Football Teams Analyzer")
root.geometry('1024x768+300+50')
app = GUI(root)
root.mainloop()
mainfunction()
您可以使用isinstance()
函数检查项目的类型,如果指定的对象属于指定的类型,则该函数将返回True
,否则返回False
对于类型的简单检查:
def checkNumber():
phone = self.entry1.get()
isNumber = isinstance(phone, int)
if isNumber:
print("Success!")
else:
...
检查输入小部件是否为空:
def checkEntry():
check = entry1.get()
if check == "":
print("EMPTY")
else:
...
全部放在一起。
from tkinter import *
class GUI(Frame):
def __init__(self, parent):
self.parent = parent
Frame.__init__(self, parent)
# self.db = dbm.open("captions.db","c")
self.username = StringVar()
self.phone_number = IntVar()
self.initUI(parent)
def initUI(self, parent):
self.label1 = Label(self,text = "UserName:")
self.label1.grid()
self.entry = Entry(self,textvariable = self.username)
self.entry.grid()
self.label2 = Label(self, text="Phone Number:")
self.label2.grid()
self.entry1 = Entry(self,textvariable = self.phone_number)
self.entry1.grid()
self.button = Button(self,text = "Check", command = check)
self.button.grid()
def checkEntry():
check = entry1.get()
if check == "":
print("EMPTY")
return True
else:
...
def check():
if CheckEntry(): # If CheckEntry() returns true
phone = self.entry1.get() # Get the entry values
isNumber = isinstance(phone, int) # Check if it is an integer
if isNumber:
print("Success!")
else:
...
self.grid()
def mainfunction():
root = Tk()
root.title("Football Teams Analyzer")
root.geometry('1024x768+300+50')
app = GUI(root)
root.mainloop()
mainfunction()