You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

204 lines
7.8 KiB

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

import pymysql as sql
import tkinter.font as tf
from tkinter import messagebox
from image import try_dun as bt
from tkinter import *
from PIL import Image, ImageTk
class Main(object):
username="dasd "
@staticmethod
def setname(self,name):
self.username=name
@staticmethod
def getname(self):
return self.username
def yemian(self):
root = Tk() # 创建主窗口
#root.config(background='#BEE7E9')
root.resizable(width=False, height=False)
# 屏幕参数设置
width = 880
height = 620
screen_width = root.winfo_screenwidth()
screen_height = root.winfo_screenheight()
x = int(screen_width / 2 - width / 2)
y = int(screen_height / 2 - height / 2)
size = '{}x{}+{}+{}'.format(width, height, x, y)
root.geometry(size)
#规定字体
ft = tf.Font(family='Fixdsys', size=30, weight=tf.BOLD) # 定义字体
ft1 = tf.Font(family='Fixdsys', size=15, weight=tf.BOLD) # 定义字体
ft2 = tf.Font(family='Fixdsys', size=10, weight=tf.NORMAL) # 定义字体
return root,ft,ft1,ft2
# 主框架
def getframe(self,root):
frame = Frame(root, width=850, height=620)
frame.place(x=0, y=0)
global photo
img = Image.open('D:\python数据库课程设计\image\左贴图.jpg') # 打开图片
photo = ImageTk.PhotoImage(img)
return frame, Label(frame, image=photo).place(x=0, y=0)
def Frame_fun(self,root):
#规定窗口内的画布
# 少了这个就滚动不了
def _on_mousewheel( event):
canvas.yview_scroll(-1 * (event.delta / 120), "units")
def myfunction(event):
canvas.configure(scrollregion=canvas.bbox("all"), width=200, height=200)
canvas = Canvas(root) # 创建画布
canvas.place(x=85, y=0, height=400, width=800) # 画布大小,对应着组件的位置
myscrollbar = Scrollbar(root, orient="vertical", command=canvas.yview) # 创建滚动条
myscrollbar.place(x=865, y=0, height=400) # 滚动条的位置和范围这些
canvas.configure(yscrollcommand=myscrollbar.set)
rollFrame = Frame(canvas) # 在画布上创建frame
canvas.create_window((0, 0), window=rollFrame, anchor='nw') # 要用create_window才能跟随画布滚动
rollFrame.bind("<Configure>", myfunction)
#rollFrame.bind("<MouseWheel>", _on_mousewheel)
return rollFrame
def Frame_fun2(self,root):
frame=Frame(root,height=200,width=800)
frame.place(x=85,y=400)
return frame
def mysql(self):
cn=sql.connect(
host='localhost',
port=3306,
user='root',
password='123456',
db='Car_fix_sys',
charset='utf8'
)
cur=cn.cursor()
return cn,cur
def main2(cur):
root,ft,ft1,ft2=Main.yemian(None)
frame,label_tk=Main.getframe(None,root)
global photo
img = Image.open('D:\python数据库课程设计\image\左贴图.jpg') # 打开图片
photo = ImageTk.PhotoImage(img)
Label(frame, image=photo).place(x=0, y=0)
root.title('汽车修理系统——')
lab1 = Label(frame, text='汽车修理系统欢迎您!', font=ft, height=5, width=30)
#--------------
lab1.place(x=130,y=10)
lab2=Label(frame,text="当前用户SONG",font=ft1,height=3,width=20)
lab3=Label(frame,text="制作:",font=ft1,height=2,width=20)
lab4 = Label(frame, text="*进入系统则代表所有操作均由账号本人负责", font=ft2, height=2, width=40)
lab2.place(x=325,y=280)
lab3.place(x=325,y=240)
lab4.place(x=300,y=340)
bt.button_fun(root,frame,cur,Main)
root.mainloop()
def checklog(username,password,cur):#登录
sql_1='select Administration_name from Administration'
cur.execute(sql_1)
n=cur.fetchall()
name=[]
for i in n:
name.append(i[0])
print(name)
sql_2='select * from Administration'
cur.execute(sql_2)
n=cur.fetchall()
name_password=[]
for i in n:
if username==i[1]:
name_password.append(i)
print(name_password)
if username not in name:
return '用户信息不存在,请重新输入'
elif username in name and password !=name_password[0][3]:
return '密码错误'
else :
return True
def log_in(username,password,cur,root):#登录
if username=="" and password=="":
messagebox.showwarning(title="错误提示",message='请输入完整信息!')
elif checklog(username,password,cur)=='用户信息不存在,请重新输入':
messagebox.showwarning(title="错误提示", message='用户信息不存在,请重新输入')
elif checklog(username,password,cur)=='密码错误':
messagebox.showwarning(title="错误提示", message='密码错误,请重新输入')
else:
root.destroy()
main2(cur)
def checksregister(username,password,cur):#注册
sql_1='select Administration_name from Administration'
n=cur.execute(sql_1)
n=cur.fetchall()
print(n)
name=[]
for i in n:
name.append(i[0])
if username in name:
return False
else:
sql_2='insert into Administration(Administration_name,Administration_password)values(%s,%s)'
cur.execute(sql_2,(username,password))
return True
def register_in(username,password,cur,root):#注册
if username == "" or password == "":
messagebox.showwarning(title="错误提示", message='请输入完整信息!')
elif checksregister(username,password,cur)==False:
messagebox.showwarning(title="错误提示", message='已存在该用户,请重新输入!')
else:
root.destroy()
main2(cur)
def main_pace(cur):
root,ft,ft1,ft2=Main.yemian(None)
root.title('汽车修理管理系统——')
frame, label_tk = Main.getframe(None,root)
lab1 = Label(frame, text='汽车修理管理系统', font=ft, height=5,width=30)
Label_username = Label(frame, text="用户名:",font=ft1)
Entry_username = Entry(frame,width=30,relief=RIDGE,bd=1)
Entry_username.place(x=370,y=302)
Label_username.place(x=290,y=300)
Label_password = Label(frame, text="密 码:",font=ft1)
Entry_password = Entry(frame,width=30,relief=RIDGE,bd=1)
Label_password.place(x=290,y=350)
Entry_password.place(x=370,y=352)
lab1.place(x=130,y=10)
Button_login = Button(frame, text="登录",font=ft2,width=8,background="#90d7ec",relief=FLAT,
command=lambda :[log_in(Entry_username.get(),Entry_password.get(),cur,root)])
Button_login.place(x=330,y=390)
Button_cancer = Button(frame, text="注册",font=ft2,width=8,background="#90d7ec",relief=FLAT,
command=lambda :[register_in(Entry_username.get(),Entry_password.get(),cur,root)])
Button_cancer.place(x=480,y=390)
img_log=Image.open("D:\python数据库课程设计\image\log.png")
global img_log_tk
img_log_tk=ImageTk.PhotoImage(img_log)
Button_log = Button(frame,image=img_log_tk,compound=TOP,width=78,height=80,text="进入系统",bd=1,bg="#3fcefe",relief=GROOVE)
Button_log.place(x=0,y=80)
#用户图片
img_user=Image.open(r"D:\python数据库课程设计\image\tk_user.png")
global img_user_tk
img_user_tk=ImageTk.PhotoImage(img_user)
Label(frame, image=img_user_tk).place(x=180, y=280)
root.mainloop()
if __name__ == '__main__':
cn,cur=Main.mysql(None)
n=cur.execute("select * from Administration")
n=cur.fetchall()
main_pace(cur)
#关闭数据库
cn.commit()
cur.close()
cn.close()