def Menu1():
root = tkinter.Tk(className='界面')
root.title='界面'
label = tkinter.Label(root, text="Hello Hello欢迎进入智能停车收费停车场", bg='yellow')
root.geometry('300x300+260+160')
label.pack()
def click1():
park()
def click2():
find()
def click3():
dispcust()
def click5():
root.destroy()
ased()
def click4():
dis()
def click6():
sum()
def click7():
exit(0)
button1 = tkinter.Button(root, text='1)停车', bg='blue', width=20, command=click1)
button1.pack()
button2 = tkinter.Button(root, text='2)查询', bg='blue', width=20, command=click2)
button2.pack()
button3 = tkinter.Button(root, text='3)显示', bg='blue', width=20, command=click3)
button3.pack()
button4 = tkinter.Button(root, text='4)帮助', bg='blue', width=20, command=click4)
button4.pack()
button5 = tkinter.Button(root, text='5)取车', bg='blue', width=20, command=click5)
button5.pack()
button6 = tkinter.Button(root, text='6)统计', bg='blue', width=20, command=click6)
button6.pack()
button7 = tkinter.Button(root, text='7)退出', bg='blue', width=20, command=click7)
button7.pack()
root.mainloop()
def park(): #操作1 添加用户
rt1 = tkinter.Tk(className='测试')
rt1.geometry('380x200+650+150')
t1 = Entry(rt1,show=None )
t1.place(x=120, y=10)
t2 = Label(rt1, text='车号:')
t2.place(x=60, y=10)
t3 = Entry(rt1, show=None)
t3.place(x=120, y=60)
t4 = Label(rt1, text='车主:')
t4.place(x=60, y=60)
t5 = Label(rt1, text='颜色:')
t5.place(x=60, y=100)
t6 = Entry(rt1, show=None)
t6.place(x=120, y=100)
def queding():
v1 = t1.get()
v2 = t3.get()
v3 = t6.get()
if v1=='' or v2=='' or v3=='':
tkinter.messagebox.showinfo(title='添加失败',message="输入无效!!!")
else:
cn = win32com.client.Dispatch('ADODB.Connection')
cnstr = 'Provider = SQLOLEDB.1;Integrated Security = SSPI;Data Source=DESKTOP-KHP9P0M'
cn.Open(cnstr, 'sa', 'sa')
cn.DefaultDatabase = 'sst'
cn.Execute("USE sst")
cn.Execute("INSERT INTO sst1 VALUES('%s','%s','%s')" % (v1, v2, v3))
tkinter.messagebox.showinfo(title='添加成功', message="%s用户停车成功!" % v1)
rt1.destroy()
def quxiao():
rt1.destroy()
bt1 = Button(rt1, text='确认', width=10, height=1, command=queding)
bt1.place(x=80,y=140)
bt2 = Button(rt1, text='取消', width=10, height=1,command=quxiao)
bt2.place(x=160, y=140)
rt1.mainloop()
def find(): #查询函数
rt1 = tkinter.Tk(className='查询界面')
rt1.geometry('380x240+580+250')
lb=Label()
t2 = Label(rt1, text='车号:')
t2.place(x=60, y=10)
t1 = Entry(rt1, show=None)
t1.place(x=100, y=10)
def queding1():
global manfra
tno = t1.get()
if tno=='':
tkinter.messagebox.showinfo(title='查询成功', message="请重新输入" )
else:
cn = win32com.client.Dispatch('ADODB.Connection')
cnstr = 'Provider = SQLOLEDB.1;Integrated Security = SSPI;Data Source=DESKTOP-KHP9P0M'
cn.Open(cnstr, 'sa', 'sa')
cn.DefaultDatabase = 'sst'
cn.Execute("USE sst")
rs = win32com.client.Dispatch('ADODB.RecordSet')
rs.Open('sst1', cn)
i=1
if not rs.EOF:
while not rs.EOF:
if (rs.Fields(0).Value).strip() == tno:
s1 = rs.Fields(0).Value
s2 = rs.Fields(1).Value
s3 = rs.Fields(2).Value
t3 = Label(rt1, text='车号:')
t3.place(x=60, y=120)
t4 = Entry(rt1, show=None)
t4.insert(INSERT, s1)
t4.place(x=100, y=120)
t5 = Label(rt1, text='车主:')
t5.place(x=60, y=140)
t6 = Entry(rt1, show=None)
t6.insert(INSERT, s2)
t6.place(x=100, y=140)
t7 = Label(rt1, text='颜色:')
t7.place(x=60, y=160)
t8 = Entry(rt1, show=None)
t8.insert(INSERT, s3)
i=2
t8.place(x=100, y=160)
t9 = Label(rt1, text='查询结果:', font=('微软雅黑', 15, 'bold'))
t9.place(x=60, y=80)
rs.MoveNext()
else:
tkinter.messagebox.showinfo(title='查询失败', message="该车库无%s车号信息"%tno)
if i==1:
tkinter.messagebox.showinfo(title='查询失败', message="该车库无%s车号信息"%tno)
def ass():
rt1.destroy()
bt1 = Button(rt1, text='确认', width=10, height=1, command=queding1)
bt1.place(x=80, y=200)
bt2 = Button(rt1, text='取消', width=10, height=1, command=ass)
bt2.place(x=200, y=200)
rt1.mainloop()
def dispcust(): #显示客户
cn = win32com.client.Dispatch('ADODB.Connection')
cnstr = 'Provider = SQLOLEDB.1;Integrated Security = SSPI;Data Source=DESKTOP-KHP9P0M'
cn.Open(cnstr, 'sa', 'sa')
cn.DefaultDatabase = 'sst'
cn.Execute("USE sst")
rt8=Tk(className='显示客户')
tr2 = Label(rt8, text='车号信息:',font=('微软雅黑', 15, 'bold'))
tr2.place(x=10, y=10)
rt8.geometry('300x300+600+200')
text1=Text(rt8,width=30,height=15)
text1.place(x=10,y=80)
tr3 = Label(rt8, text='车号')
tr3.place(x=10, y=50)
tr4 = Label(rt8, text='车主')
tr4.place(x=86, y=50)
tr5 = Label(rt8, text='颜色')
tr5.place(x=150, y=50)
rs=win32com.client.Dispatch('ADODB.RecordSet')
rs.Open('sst1',cn)
if not rs.EOF:
#text1.insert(INSERT,'车号 \t车主 \t颜色 ')
while not rs.EOF:
text1.insert(INSERT,rs.Fields(0).Value)
text1.insert(INSERT,rs.Fields(1).Value)
text1.insert(INSERT,rs.Fields(2).Value)
rs.MoveNext()
else:
tkinter.messagebox.showinfo(title='车库', message="车库空空如也!!!!")
rt8.mainloop()
def ased():
rt6 = Tk()
rt6.geometry('600x400+400+200')
rt6.title('出车界面')
rt6.iconbitmap('pro.ico')
idat = PhotoImage(file='Prou.gif', width=850, height=450)
lab1 = Label(image=idat)
lab1.place(x=0, y=0)
def as1():
v6 = t3.get()
cn = win32com.client.Dispatch('ADODB.Connection')
cnstr = 'Provider = SQLOLEDB.1;Integrated Security = SSPI;Data Source=DESKTOP-KHP9P0M'
cn.Open(cnstr, 'sa', 'sa')
cn.DefaultDatabase = 'sst'
cn.Execute("USE sst")
cn.Execute("delete from sst1 where cno=%s" % v6)
tkinter.messagebox.showinfo(title='出车', message="%s用户出车成功!\n 您需要支付3元的停车费" % v6)
def as2():
rt6.destroy()
Menu1()
def as3():
def as4():
rt7.destroy()
rt7 = Tk('5x5+200+200')
rt7.title('支付界面')
bt1 = Button(rt7, text='完成支付', width=10, height=1,command=as4)
bt1.place(x=10, y=20)
lab3 = Label(text='请扫描下方二维码完成支付')
lab3.pack()
idat1 = PhotoImage(file='Prou1.png', width=420, height=318)
lab3 = Label(image=idat1)
lab3.place(x=0, y=0)
rt7.mainloop()
bt1 = Button(rt6, text='确认', width=10, height=1, command=as1)
bt1.place(x=430, y=200)
bt2 = Button(rt6, text='取消', width=10, height=1, command=as2)
bt2.place(x=510, y=200)
bt3 = Button(rt6, text='扫码支付', width=20, height=1, command=as3)
bt3.place(x=430, y=260)
t2 = Label(rt6, text='请输入您的车号:')
t2.place(x=430, y=120)
t2 = Label(rt6, text='车号:')
t2.place(x=430, y=160)
t3 = Entry(rt6, show=None,width=15)
t3.place(x=460, y=160)
label = Label(rt6, text="期待您的下次光临!!!!", bg='blue', width=85, height=3)
label.place(x=0, y=350)
manfra = LabelFrame()
manfra.pack()
rt6.mainloop()
def sum():
cn = win32com.client.Dispatch('ADODB.Connection')
cnstr = 'Provider = SQLOLEDB.1;Integrated Security = SSPI;Data Source=DESKTOP-KHP9P0M'
cn.Open(cnstr, 'sa', 'sa')
cn.DefaultDatabase = 'sst'
cn.Execute("USE sst")
rs = win32com.client.Dispatch('ADODB.RecordSet')
rs.Open('sst1', cn)
s=0
while not rs.EOF:
s=s+1
rs.MoveNext()
rs.Close()
tkinter.messagebox.showinfo(title='统计信息', message="停车车场共有%d辆车!" %s)
def dis(): #帮助信息
tkinter.messagebox.showinfo(title='帮助',message='这么简单的界面要什么帮助!\n是不是不想掏钱!\n 想跑!!!\n门都没有')
数据库展示,这里只用了数据库的一张表,比较简单。如果想要多表操作,你可以修改上面的SQL语句,然后在调用模块函数。