python3使用tkinter制作用户管理模块

#! /usr/bin/env python3
# -*- coding: UTF-8 -*-

import tkinter as tk
from tkinter import ttk
from tkinter import *
from tkinter import messagebox
import pymysql
import re
from _tkinter import create



root = tk.Tk()
root.title('用户管理')
root.maxsize()
w,h=root.maxsize()
root.geometry("{}x{}".format(w, h))

labelframe = ttk.LabelFrame(root)
labelframe.grid(row=0, column=0)
        
label_01 = Label(labelframe,text = '用户姓名:')
label_01.grid(row=0,column=0)
data_01 = StringVar()
entry_01 = Entry(labelframe,textvariable=data_01)
entry_01.grid(row=0,column=1)
label = Label(labelframe,text = '     ')
label.grid(row=0,column=2)

label_02 = Label(labelframe, text='用户手机号:')
label_02.grid(row=0, column=3)
data_02 = StringVar()
entry_02 = Entry(labelframe,textvariable=data_02)
entry_02.grid(row=0,column=4)
label = Label(labelframe, text='     ')
label.grid(row=0, column=5)

label_03 = Label(labelframe, text='城市:')
label_03.grid(row=0, column=6)
data_03 =StringVar()
combobox_03 =ttk.Combobox(labelframe,textvariable=data_03)
combobox_03['values']=('不限','杭州市','南京市')
combobox_03["state"] = "readonly" 
combobox_03.current(0) 
combobox_03.grid(row=0, column=7)
label = Label(labelframe, text='     ')
label.grid(row=0, column=8)

label_04 = Label(labelframe, text='所在部门:')
label_04.grid(row=0, column=9)
data_04 =StringVar()
combobox_04 =ttk.Combobox(labelframe,textvariable=data_04)
combobox_04['values']=('不限','总部','分公司')
combobox_04["state"] = "readonly" 
combobox_04.current(0) 
combobox_04.grid(row=0, column=10)
label = Label(labelframe, text='     ')
label.grid(row=0, column=11)

label_05 = Label(labelframe, text='用户岗位:')
label_05.grid(row=0, column=12)
data_05 =StringVar()
combobox_05 =ttk.Combobox(labelframe,textvariable=data_05)
combobox_05['values']=('不限','系统管理员','测试')
combobox_05["state"] = "readonly" 
combobox_05.current(0) 
combobox_05.grid(row=0, column=13)
label = Label(labelframe, text='     ')
label.grid(row=0, column=14)

label_06 = Label(labelframe, text='用户状态:')
label_06.grid(row=0, column=15)
data_06 =StringVar()
combobox_06 =ttk.Combobox(labelframe,textvariable=data_06)
combobox_06['values']=('不限','离职','在职')
combobox_06["state"] = "readonly" 
combobox_06.current(0) 
combobox_06.grid(row=0, column=16)
label = Label(labelframe, text='     ')
label.grid(row=0, column=17)

label = Label(labelframe, text='  ')
label.grid(row=1, column=0)
label = Label(labelframe, text='    用户列表    ')
label.grid(row=2, column=0)



label = Label(labelframe, text='                  ')
label.grid(row=2, column=2)
label = Label(labelframe, text='                  ')
label.grid(row=2, column=3)
label = Label(labelframe, text='                  ')
label.grid(row=2, column=4)
label = Label(labelframe, text='                  ')
label.grid(row=2, column=5)
label = Label(labelframe, text='                  ')
label.grid(row=2, column=6)
label = Label(labelframe, text='                  ')
label.grid(row=2, column=7)
label = Label(labelframe, text='     ')
label.grid(row=2, column=8)
label = Label(labelframe, text='                  ')
label.grid(row=2, column=9)
label = Label(labelframe, text='                  ')
label.grid(row=2, column=10)
label = Label(labelframe, text='                  ')
label.grid(row=2, column=11)
label = Label(labelframe, text='                  ')
label.grid(row=2, column=12)





text = tk.Text(root,width=252,height=69)
text.grid(row=2, column=0)


######################新增系统用户~~~~~~~~~~!
def addUse():
    pot = tk.Tk()
    pot.title('后台用户信息')
    pot.resizable(0, 0)

    label1 = Label(pot,text='*',fg='red')
    label1.grid(row=0, column=0)
    label1 = Label(pot,text='用户姓名:')
    label1.grid(row=0, column=1)
    data1 = StringVar()
    entry1 = Entry(pot,textvariable=data1,width=23)
    entry1.grid(row=0, column=2)
    label = Label(pot,text='     ')
    label.grid(row=0, column=3)

    label2 = Label(pot,text='*',fg='red')
    label2.grid(row=0, column=4)
    label2 = Label(pot,text='手机号码:')
    label2.grid(row=0, column=5)
    data2 = StringVar
    entry2 = Entry(pot,textvariable=data2,width=23)
    entry2.grid(row=0, column=6)
    label = Label(pot,text='    ')
    label.grid(row=0, column=7)



    label3 = Label(pot,text='*',fg='red')
    label3.grid(row=1, column=0)
    label3 = Label(pot,text='所在部门:')
    label3.grid(row=1, column=1)
    data3 = StringVar()
    combobox3 = ttk.Combobox(pot,textvariable=data3)
    combobox3['values'] = ('请选择','总部','分公司')
    combobox3["state"] = "readonly"
    combobox3.current(0) 
    combobox3.grid(row=1, column=2)
    label = Label(pot,text='     ')
    label.grid(row=1, column=3)

    label4 = Label(pot,text='*',fg='red')
    label4.grid(row=1, column=4)
    label4 = Label(pot,text='用户岗位:')
    label4.grid(row=1, column=5)
    data4 = StringVar()
    combobox4 = ttk.Combobox(pot,textvariable=data4)
    combobox4['values'] = ('请选择','系统管理员','测试')
    combobox4["state"] = "readonly" 
    combobox4.current(0) 
    combobox4.grid(row=1, column=6)
    label = Label(pot,text='     ')
    label.grid(row=1, column=7)
        
        
    label5 = Label(pot,text='*',fg='red')
    label5.grid(row=2, column=0)
    label5 = Label(pot,text='城市:')
    label5.grid(row=2, column=1)
    data5 = StringVar()
    combobox5 = ttk.Combobox(pot,textvariable=data5)
    combobox5['values'] = ('请选择','杭州市','南京市')
    combobox5["state"] = "readonly" 
    combobox5.current(0) 
    combobox5.grid(row=2, column=2)
    label = Label(pot,text='     ')
    label.grid(row=2, column=3)

    label6 = Label(pot,text='*',fg='red')
    label6.grid(row=2, column=4)
    label6 = Label(pot,text='用户状态:')
    label6.grid(row=2, column=5)
    data6 = StringVar()
    combobox6 = ttk.Combobox(pot,textvariable=data6)
    combobox6['values'] = ('请选择','离职','在职')
    combobox6["state"] = "readonly" 
    combobox6.current(0) 
    combobox6.grid(row=2, column=6)
    label = Label(pot,text='     ')
    label.grid(row=2, column=7)
    
    


    label = Label(pot,text='     ')
    label.grid(row=3, column=0)
    label = Label(pot,text='     ')
    label.grid(row=4, column=0)
    label = Label(pot,text='     ')
    label.grid(row=5, column=0)

    label = Label(pot,text='     ')
    label.grid(row=6, column=0)
    label = Label(pot,text='     ')
    label.grid(row=6, column=1)
    label = Label(pot,text='     ')
    label.grid(row=6, column=2)
    label = Label(pot,text='     ')
    label.grid(row=6, column=3)
    label = Label(pot,text='     ')
    label.grid(row=6, column=4)
    label = Label(pot,text='     ')
    label.grid(row=6, column=5)
    label = Label(pot,text='     ')
    label.grid(row=6, column=6)

    def getdata():
        Name = entry1.get().lstrip()
        Phone = entry2.get().lstrip()
        Department = combobox3.get().lstrip()
        Post = combobox4.get().lstrip()
        City = combobox5.get().lstrip()
        Status = combobox6.get().lstrip()

        db = pymysql.connect("localhost", "root", "long268244", 'erp_use',charset='utf8')
        cursor = db.cursor()
        sql = ('select name,phone from user ')
        try:
            cursor.execute(sql)
            results = cursor.fetchall()
            namedata=[]
            phonedata=[]
            for i in range(len(results)):
                namedata.append(results[i][0])
                phonedata.append(results[i][1])
        except:
            db.rollback()
        db.close()

        if len(Name)<1 or len(Name)>20  :
            messagebox.showinfo(title='警告', message='用户名字长度不符合规范!')
        elif   re.match('[`~!@#$%^&*()-=_+,./ \<【】{}[]>?|.]{1,20}',Name)  or re.match(' [  ]', Name) :
            messagebox.showinfo(title='警告', message='用户名字内容不规范!')
        elif re.match(u'[\u4e00-\u9fa5]+',Name) and  re.match('[A-Za-z]+', Name)   :
            messagebox.showinfo(title='警告', message='用户名字只能纯中文或者纯英文!')
        elif Name in namedata:
            messagebox.showinfo(title='警告', message='用户名字已存在~!')
        elif not re.match('1[3-9][0-9]{9,10}', Phone) or len(Phone) != 11:
            messagebox.showinfo(title='警告', message='手机号码不符合规则~!')
        elif Phone in phonedata:
            messagebox.showinfo(title='警告', message='手机号码已存在~!')
        elif Department == "请选择" :
            messagebox.showinfo(title='警告', message='所在部门不能为空~!')
        elif Department != '总部' and Department !='分公司' and Department != "请选择":
            messagebox.showinfo(title='警告', message='所在部门选择有误,请重新选择~!')
        elif Post == "请选择" :
            messagebox.showinfo(title='警告', message='用户岗位不能为空~!')
        elif Post != '系统管理员' and Post !='测试' and Post !='请选择':
            messagebox.showinfo(title='警告', message='用户岗位选择有误,请重新选择~!')
        elif City == "请选择" :
            messagebox.showinfo(title='警告', message='城市不能为空~!')
        elif City != '杭州市' and City !='南京市' and City !="请选择":
            messagebox.showinfo(title='警告', message='城市选择有误,请重新选择~!')
        elif Status == "请选择" :
            messagebox.showinfo(title='警告', message='用户状态不能为空~!')
        elif Status != '离职' and Status !='在职' and Status !="请选择":
            messagebox.showinfo(title='警告', message='用户状态选择有误,请重新选择~!')
        else:
            messagebox.showinfo(title='注册信息', message=('新增系统用户成功'))
            pot.destroy()
            root.deiconify()
            sql = ('insert into user(name,phone,department,post,city,status)values("%s", "%s","%s","%s", "%s","%s")' % (Name, Phone, Department,Post,City,Status))
            db = pymysql.connect("localhost", "root", "long268244", 'erp_use',charset='utf8')
            cursor = db.cursor()
            try:
                cursor.execute(sql)
                db.commit()
            except:
                db.rollback()
            db.close()
            
            text.delete(0.0, 1000.0)
            db = pymysql.connect("localhost", "root", "long268244", 'erp_use', charset='utf8')
            cursor = db.cursor()
            sql ='select Name, Phone, Department,Post,City,Status from user '
            try:
                cursor.execute(sql)
                results = cursor.fetchall()
                text.insert(1.0,u'|序号 ◆    |         用户姓名 ◆   |              电话◆   |          所在部门 ◆    |       用户岗位 ◆   |        城市◆   |         用户状态 ◆   |                                                                                                     ')

                for i in range(len(results)):
                    text.insert(2.0,'|___________|_______________________|_______________________|_________________________|_____________________|_________________|_______________________|                                                                                                     ')
                    text.insert(2.0, '| ')
                    text.insert(2.0, i + 1)
            
                    if 0 <= i < 9:
                        text.insert(2.0, '         |  ')
                    elif 9<= i <99:
                        text.insert(2.0, '        |  ')
                    elif 99<= i <999:
                        text.insert(2.0, '       |  ')
                
          
                    datalist = results[i]
            

                    text.insert(2.0, datalist[0])
                    if len(datalist[0]) <= 20:
                        zhongwen = re.compile(u'[\u4e00-\u9fa5]+')
                        match = zhongwen.search(datalist[0])
                        if match:
                            text.insert(2.0, ' ' * (20 - len(datalist[0]) * 2))
                        else:
                            text.insert(2.0, ' ' * (20 - len(datalist[0])))
                    text.insert(2.0, '              ')

                    text.insert(2.0, datalist[1])
                    text.insert(2.0, '            ')

                    text.insert(2.0, datalist[2])
                    if len(datalist[2]) == 2:
                        text.insert(2.0, '  ')
                    text.insert(2.0, '                ')

                    text.insert(2.0, datalist[3])
                    if len(datalist[3]) == 2:
                        text.insert(2.0, '      ')
                    text.insert(2.0, '            ')

                    text.insert(2.0, datalist[4])
                    text.insert(2.0, '            ')

                    text.insert(2.0, datalist[5])
                    text.insert(2.0, '              ')

                    text.insert(2.0,
                        '                                                                                                    ')
                text.insert(2.0,'|___________|_______________________|_______________________|_________________________|_____________________|_________________|_______________________|                                                                                                     ')

            except:
                db.rollback()
            db.close()
            
            
            
            
            
    button = ttk.Button(pot, text='提交',command=getdata)
    button.grid(row=6, column=7)    
    mainloop()
    
# 修改  
def xiuUse():
    pot = tk.Tk()
    pot.title('后台用户信息')
    pot.resizable(0, 0)

    label1 = Label(pot,text='*',fg='red')
    label1.grid(row=0, column=0)
    label1 = Label(pot,text='用户姓名:')
    label1.grid(row=0, column=1)
    data1 = StringVar()
    entry1 = Entry(pot,textvariable=data1,width=23)
    entry1.grid(row=0, column=2)
    label = Label(pot,text='     ')
    label.grid(row=0, column=3)

    label2 = Label(pot,text='*',fg='red')
    label2.grid(row=0, column=4)
    label2 = Label(pot,text='手机号码:')
    label2.grid(row=0, column=5)
    data2 = StringVar
    entry2 = Entry(pot,textvariable=data2,width=23)
    entry2.grid(row=0, column=6)
    label = Label(pot,text='    ')
    label.grid(row=0, column=7)



    label3 = Label(pot,text='*',fg='red')
    label3.grid(row=1, column=0)
    label3 = Label(pot,text='所在部门:')
    label3.grid(row=1, column=1)
    data3 = StringVar()
    combobox3 = ttk.Combobox(pot,textvariable=data3)
    combobox3['values'] = ('请选择','总部','分公司')
    combobox3["state"] = "readonly"
    combobox3.current(0) 
    combobox3.grid(row=1, column=2)
    label = Label(pot,text='     ')
    label.grid(row=1, column=3)

    label4 = Label(pot,text='*',fg='red')
    label4.grid(row=1, column=4)
    label4 = Label(pot,text='用户岗位:')
    label4.grid(row=1, column=5)
    data4 = StringVar()
    combobox4 = ttk.Combobox(pot,textvariable=data4)
    combobox4['values'] = ('请选择','系统管理员','测试')
    combobox4["state"] = "readonly" 
    combobox4.current(0) 
    combobox4.grid(row=1, column=6)
    label = Label(pot,text='     ')
    label.grid(row=1, column=7)
        
        
    label5 = Label(pot,text='*',fg='red')
    label5.grid(row=2, column=0)
    label5 = Label(pot,text='城市:')
    label5.grid(row=2, column=1)
    data5 = StringVar()
    combobox5 = ttk.Combobox(pot,textvariable=data5)
    combobox5['values'] = ('请选择','杭州市','南京市')
    combobox5["state"] = "readonly" 
    combobox5.current(0) 
    combobox5.grid(row=2, column=2)
    label = Label(pot,text='     ')
    label.grid(row=2, column=3)

    label6 = Label(pot,text='*',fg='red')
    label6.grid(row=2, column=4)
    label6 = Label(pot,text='用户状态:')
    label6.grid(row=2, column=5)
    data6 = StringVar()
    combobox6 = ttk.Combobox(pot,textvariable=data6)
    combobox6['values'] = ('请选择','离职','在职')
    combobox6["state"] = "readonly" 
    combobox6.current(0) 
    combobox6.grid(row=2, column=6)
    label = Label(pot,text='     ')
    label.grid(row=2, column=7)
    
    


    label = Label(pot,text='     ')
    label.grid(row=3, column=0)
    label = Label(pot,text='     ')
    label.grid(row=4, column=0)
    label = Label(pot,text='     ')
    label.grid(row=5, column=0)

    label = Label(pot,text='     ')
    label.grid(row=6, column=0)
    label = Label(pot,text='     ')
    label.grid(row=6, column=1)
    label = Label(pot,text='     ')
    label.grid(row=6, column=2)
    label = Label(pot,text='     ')
    label.grid(row=6, column=3)
    label = Label(pot,text='     ')
    label.grid(row=6, column=4)
    label = Label(pot,text='     ')
    label.grid(row=6, column=5)
    label = Label(pot,text='     ')
    label.grid(row=6, column=6)
    
    def getdata():
        Name = entry1.get().lstrip()
        Phone = entry2.get().lstrip()
        Department = combobox3.get().lstrip()
        Post = combobox4.get().lstrip()
        City = combobox5.get().lstrip()
        Status = combobox6.get().lstrip()

        db = pymysql.connect("localhost", "root", "long268244", 'erp_use',charset='utf8')
        cursor = db.cursor()
        sql = ('select name,phone from user ')
        try:
            cursor.execute(sql)
            results = cursor.fetchall()
            namedata=[]
            phonedata=[]
            for i in range(len(results)):
                namedata.append(results[i][0])
                phonedata.append(results[i][1])
        except:
            db.rollback()
        db.close()

        if len(Name)<1 or len(Name)>20:
            messagebox.showinfo(title='警告', message='用户名字长度不在1-20范围内~!')
        elif Name in namedata:
            messagebox.showinfo(title='警告', message='用户名字已存在~!')
        elif not re.match('1[3-9][0-9]{9,10}', Phone) or len(Phone) != 11:
            messagebox.showinfo(title='警告', message='手机号码不符合规则~!')
        elif Phone in phonedata:
            messagebox.showinfo(title='警告', message='手机号码已存在~!')
        elif Department == "请选择" :
            messagebox.showinfo(title='警告', message='所在部门不能为空~!')
        elif Department != '总部' and Department !='分公司' and Department != "请选择":
            messagebox.showinfo(title='警告', message='所在部门选择有误,请重新选择~!')
        elif Post == "请选择" :
            messagebox.showinfo(title='警告', message='用户岗位不能为空~!')
        elif Post != '系统管理员' and Post !='测试' and Post !='请选择':
            messagebox.showinfo(title='警告', message='用户岗位选择有误,请重新选择~!')
        elif City == "请选择" :
            messagebox.showinfo(title='警告', message='城市不能为空~!')
        elif City != '杭州市' and City !='南京市' and City !="请选择":
            messagebox.showinfo(title='警告', message='城市选择有误,请重新选择~!')
        elif Status == "请选择" :
            messagebox.showinfo(title='警告', message='用户状态不能为空~!')
        elif Status != '离职' and Status !='在职' and Status !="请选择":
            messagebox.showinfo(title='警告', message='用户状态选择有误,请重新选择~!')
        else:
            
            pot.destroy()
            root.deiconify()
            sql = ('insert into user(name,phone,department,post,city,status)values("%s", "%s","%s","%s", "%s","%s")' % (Name, Phone, Department,Post,City,Status))
            db = pymysql.connect("localhost", "root", "long268244", 'erp_use',charset='utf8')
            
            cursor = db.cursor()
            try:
                cursor.execute(sql)
                db.commit()          
            except:
                db.rollback()
            db.close()
            
 
            text.delete(0.0, 1000.0)
            db = pymysql.connect("localhost", "root", "long268244", 'erp_use', charset='utf8')
            cursor = db.cursor()
            sql ='select Name, Phone, Department,Post,City,Status from user '
            try:
                cursor.execute(sql)
                results = cursor.fetchall()
                text.insert(1.0,u'|序号 ◆    |         用户姓名 ◆   |              电话◆   |          所在部门 ◆    |       用户岗位 ◆   |        城市◆   |         用户状态 ◆   |                                                                                                     ')

                for i in range(len(results)):
                    text.insert(2.0,'|___________|_______________________|_______________________|_________________________|_____________________|_________________|_______________________|                                                                                                     ')
                    text.insert(2.0, '| ')
                    text.insert(2.0, i + 1)
            
                    if 0 <= i < 9:
                        text.insert(2.0, '         |  ')
                    elif 9<= i <99:
                        text.insert(2.0, '        |  ')
                    elif 99<= i <999:
                        text.insert(2.0, '       |  ')
                
          
                    datalist = results[i]
            

                    text.insert(2.0, datalist[0])
                    if len(datalist[0]) <= 20:
                        zhongwen = re.compile(u'[\u4e00-\u9fa5]+')
                        match = zhongwen.search(datalist[0])
                        if match:
                            text.insert(2.0, ' ' * (20 - len(datalist[0]) * 2))
                        else:
                            text.insert(2.0, ' ' * (20 - len(datalist[0])))
                    text.insert(2.0, '              ')

                    text.insert(2.0, datalist[1])
                    text.insert(2.0, '            ')

                    text.insert(2.0, datalist[2])
                    if len(datalist[2]) == 2:
                        text.insert(2.0, '  ')
                    text.insert(2.0, '                ')

                    text.insert(2.0, datalist[3])
                    if len(datalist[3]) == 2:
                        text.insert(2.0, '      ')
                    text.insert(2.0, '            ')

                    text.insert(2.0, datalist[4])
                    text.insert(2.0, '            ')

                    text.insert(2.0, datalist[5])
                    text.insert(2.0, '              ')

                    text.insert(2.0,
                        '                                                                                                    ')
                text.insert(2.0,'|___________|_______________________|_______________________|_________________________|_____________________|_________________|_______________________|                                                                                                     ')

            except:
                db.rollback()
            db.close()
            
            messagebox.showinfo(title='注册信息', message=('新增系统用户成功'))
    button = ttk.Button(pot, text='提交',command=getdata)
    button.grid(row=6, column=7)    
    mainloop()
       
            
            
            
      
################重置
def listdisplay():
    data_01.set('    ')
    data_02.set('    ')
    data_03.set(' 不限')
    data_04.set(' 不限')
    data_05.set(' 不限')
    data_06.set(' 不限')
    
    text.delete(0.0, 1000.0)
    db = pymysql.connect("localhost", "root", "long268244", 'erp_use', charset='utf8')
    cursor = db.cursor()
    sql ='select Name, Phone, Department,Post,City,Status from user '
    try:
        cursor.execute(sql)
        results = cursor.fetchall()
        text.insert(1.0,
                    u'|序号 ◆    |         用户姓名 ◆   |              电话◆   |          所在部门 ◆    |       用户岗位 ◆   |        城市◆   |         用户状态 ◆   |                                                                                                     ')

        for i in range(len(results)):
            text.insert(2.0,
                        '|___________|_______________________|_______________________|_________________________|_____________________|_________________|_______________________|                                                                                                     ')
            text.insert(2.0, '| ')
            text.insert(2.0, i + 1)
            
            if 0 <= i < 9:
                text.insert(2.0, '         |  ')
            elif 9<= i <99:
                text.insert(2.0, '        |  ')
            elif 99<= i <999:
                text.insert(2.0, '       |  ')
                
          
            datalist = results[i]
            

            text.insert(2.0, datalist[0])
            if len(datalist[0]) <= 20:
                zhongwen = re.compile(u'[\u4e00-\u9fa5]+')
                match = zhongwen.search(datalist[0])
                if match:
                    text.insert(2.0, ' ' * (20 - len(datalist[0]) * 2))
                else:
                    text.insert(2.0, ' ' * (20 - len(datalist[0])))
            text.insert(2.0, '              ')

            text.insert(2.0, datalist[1])
            text.insert(2.0, '            ')

            text.insert(2.0, datalist[2])
            if len(datalist[2]) == 2:
                text.insert(2.0, '  ')
            text.insert(2.0, '                ')

            text.insert(2.0, datalist[3])
            if len(datalist[3]) == 2:
                text.insert(2.0, '      ')
            text.insert(2.0, '            ')

            text.insert(2.0, datalist[4])
            text.insert(2.0, '            ')

            text.insert(2.0, datalist[5])
            text.insert(2.0, '              ')

            text.insert(2.0,
                        '                                                                                                    ')
        text.insert(2.0,
                    '|___________|_______________________|_______________________|_________________________|_____________________|_________________|_______________________|                                                                                                     ')

    except:
        db.rollback()
    db.close()
    





#初始化加载所有数据
def selfdata(sql):
    text.delete(0.0,1000.0)
    db = pymysql.connect("localhost", "root", "long268244", 'erp_use',charset='utf8')
    cursor = db.cursor()
    try:
        cursor.execute(sql)
        results = cursor.fetchall()
        text.insert(1.0, u'|序号 ◆    |         用户姓名 ◆   |              电话◆   |          所在部门 ◆    |       用户岗位 ◆   |        城市◆   |         用户状态 ◆   |                                                                                                     '  )
        
        
        for i in range(len(results)):
            text.insert(2.0,'|___________|_______________________|_______________________|_________________________|_____________________|_________________|_______________________|                                                                                                     ')
            text.insert(2.0,'| ')
            text.insert(2.0,i+1)
            
            if 0 <= i < 9:
                text.insert(2.0, '         |  ')
            elif 9<= i <99:
                text.insert(2.0, '        |  ')
            elif 99<= i <999:
                text.insert(2.0, '       |  ')
            datalist = results[i]
            
            
            text.insert(2.0,datalist[0])
            if len(datalist[0]) <= 20:
                zhongwen = re.compile(u'[\u4e00-\u9fa5]+')
                match = zhongwen.search(datalist[0])
                if match:
                    text.insert(2.0,' '*(20-len(datalist[0])*2))
                else:
                    text.insert(2.0,' '*(20-len(datalist[0])))
            text.insert(2.0,'              ')
                    
            text.insert(2.0,datalist[1])
            text.insert(2.0,'            ')
            
            text.insert(2.0,datalist[2])
            if len(datalist[2]) == 2:
                text.insert(2.0,'  ')
            text.insert(2.0,'                ')
                
            text.insert(2.0,datalist[3])
            if len(datalist[3]) == 2:
                text.insert(2.0,'      ')
            text.insert(2.0,'            ')
                
            text.insert(2.0,datalist[4])
            text.insert(2.0,'            ')
            
            text.insert(2.0,datalist[5])
            text.insert(2.0,'              ')
            
            text.insert(2.0,'                                                                                                    ')
        text.insert(2.0,'|___________|_______________________|_______________________|_________________________|_____________________|_________________|_______________________|                                                                                                     ')
                   
    except:
        db.rollback()
    db.close()
    




def chuli(data):
    if len(data) == 6:
        tmp = [val for val in data[0] if val in data[1]]
        tmp1 = [val for val in data[2] if val in data[3]]
        tmp2 =[val for val in data[4] if val in data[5]]
        tmp3 =[val for val in tmp1 if val in tmp]
        tmp4 =[val for val in tmp3 if val in tmp2]
        return tmp4
    elif len(data) == 5:
        tmp = [val for val in data[0] if val in data[1]]
        tmp1 = [val for val in data[2] if val in data[3]]
        tmp2 =[val for val in data[4] if val in tmp]
        tmp3 = [val for val in tmp2 if val in tmp1]
        return tmp3
    elif len(data) == 4:
        tmp = [val for val in data[0] if val in data[1]]
        tmp1 = [val for val in data[2] if val in data[3]]
        tmp2 = [val for val in tmp if val in tmp1]
        return tmp2
    elif len(data) == 3:
        tmp = [val for val in data[0] if val in data[1]]
        tmp1 = [val for val in data[2] if val in tmp]
        return tmp1
    elif len(data) == 2:
        tmp = [val for val in data[0] if val in data[1]]
        return tmp
    elif len(data) == 1:
        data1=[]
        for i in range(len(data[0])):
            data1.append(data[0][i])
        return data1
        
   

def soso():
    text.delete(0.0, 1000.0)
    NAme = entry_01.get().lstrip()
    PHone = entry_02.get().lstrip()
    DEpartment = combobox_04.get().lstrip()
    POst = combobox_05.get().lstrip()
    CIty = combobox_03.get().lstrip()
    STatus = combobox_06.get().lstrip()
    
    if len(NAme) == 0:
        sql1= None#"select Name, Phone, Department,Post,City,Status from user "
    else:
        sql1="select Name, Phone, Department,Post,City,Status from user  where name like '%%%s%%'" % NAme
        
        
    if len(PHone) == 0:
        sql2 =None# "select Name, Phone, Department,Post,City,Status from user "
    else :
        sql2="select Name, Phone, Department,Post,City,Status from user  where phone like '%%%s%%'" % PHone
        
    if  CIty == '不限':
        sql3=None
    else:
        sql3="select Name, Phone, Department,Post,City,Status from user  where city = '%s'" % CIty
        
    if DEpartment == '不限':
        sql4=None
    else:
        sql4="select Name, Phone, Department,Post,City,Status from user  where department= '%s'" % DEpartment
        
    if POst == "不限":
        sql5 =None
    else:
        sql5="select Name, Phone, Department,Post,City,Status from user  where Post = '%s'" % POst
        
    if STatus == "不限":
        sql6=None
    else:
        sql6="select Name, Phone, Department,Post,City,Status from user  where status = '%s'" % STatus

    sqldata=[sql1,sql2,sql3,sql4,sql5,sql6]
    
    resultes=[]
    
    for i in range(6):
        Sql=sqldata[i]
        db = pymysql.connect("localhost", "root", "long268244", 'erp_use', charset='utf8')
        cursor = db.cursor()
        try:
            cursor.execute(Sql)
            results = cursor.fetchall()
            resultes.append(results)
        except:
            db.rollback()
        db.close()
    chulidata=chuli(resultes)
    if chulidata==None:
        text.delete(0.0,1000.0)
        db = pymysql.connect("localhost", "root", "long268244", 'erp_use',charset='utf8')
        sql ='select Name, Phone, Department,Post,City,Status from user '
        cursor = db.cursor()
        try:
            cursor.execute(sql)
            results = cursor.fetchall()
            text.insert(1.0, u'|序号 ◆    |         用户姓名 ◆   |              电话◆   |          所在部门 ◆    |       用户岗位 ◆   |        城市◆   |         用户状态 ◆   |                                                                                                     '  )
        
        
            for i in range(len(results)):
                text.insert(2.0,'|___________|_______________________|_______________________|_________________________|_____________________|_________________|_______________________|                                                                                                     ')
                text.insert(2.0,'| ')
                text.insert(2.0,i+1)
            
                if 0 <= i < 9:
                    text.insert(2.0, '         |  ')
                elif 9<= i <99:
                    text.insert(2.0, '        |  ')
                elif 99<= i <999:
                    text.insert(2.0, '       |  ')
                datalist = results[i]
            
            
                text.insert(2.0,datalist[0])
                if len(datalist[0]) <= 20:
                    zhongwen = re.compile(u'[\u4e00-\u9fa5]+')
                    match = zhongwen.search(datalist[0])
                    if match:
                        text.insert(2.0,' '*(20-len(datalist[0])*2))
                    else:
                        text.insert(2.0,' '*(20-len(datalist[0])))
                    text.insert(2.0,'              ')
                    
                text.insert(2.0,datalist[1])
                text.insert(2.0,'            ')
            
                text.insert(2.0,datalist[2])
                if len(datalist[2]) == 2:
                    text.insert(2.0,'  ')
                text.insert(2.0,'                ')
                
                text.insert(2.0,datalist[3])
                if len(datalist[3]) == 2:
                    text.insert(2.0,'      ')
                text.insert(2.0,'            ')
                
                text.insert(2.0,datalist[4])
                text.insert(2.0,'            ')
            
                text.insert(2.0,datalist[5])
                text.insert(2.0,'              ')
            
                text.insert(2.0,'                                                                                                    ')
            text.insert(2.0,'|___________|_______________________|_______________________|_________________________|_____________________|_________________|_______________________|                                                                                                     ')
                   
        except:
            db.rollback()
        db.close()   
    else:
        text.delete(0.0, 10000.0)
        text.insert(1.0,
                        u'|序号 ◆    |         用户姓名 ◆   |              电话◆   |          所在部门 ◆    |       用户岗位 ◆   |        城市◆   |         用户状态 ◆   |                                                                                                     ')
        for i in range(len(chulidata)):
          
            text.insert(2.0,'|___________|_______________________|_______________________|_________________________|_____________________|_________________|_______________________|                                                                                                     ')
            text.insert(2.0, '| ')
            text.insert(2.0, i + 1)
            
            if 0 <= i < 9:
                text.insert(2.0, '         |  ')
            elif 9<= i <99:
                text.insert(2.0, '        |  ')
            elif 99<= i <999:
                text.insert(2.0, '       |  ')
                
            datalist = chulidata[i]
            

            text.insert(2.0, datalist[0])
            if len(datalist[0]) <= 20:
                zhongwen = re.compile(u'[\u4e00-\u9fa5]+')
                match = zhongwen.search(datalist[0])
                if match:
                    text.insert(2.0, ' ' * (20 - len(datalist[0]) * 2))
                else:
                    text.insert(2.0, ' ' * (20 - len(datalist[0])))
            text.insert(2.0, '              ')

            text.insert(2.0, datalist[1])
            text.insert(2.0, '            ')

            text.insert(2.0, datalist[2])
            if len(datalist[2]) == 2:
                text.insert(2.0, '  ')
            text.insert(2.0, '                ')

            text.insert(2.0, datalist[3])
            if len(datalist[3]) == 2:
                text.insert(2.0, '      ')
            text.insert(2.0, '            ')

            text.insert(2.0, datalist[4])
            text.insert(2.0, '            ')

            text.insert(2.0, datalist[5])
            text.insert(2.0, '              ')

            text.insert(2.0,
                            '                                                                                                    ')
        text.insert(2.0,'|___________|_______________________|_______________________|_________________________|_____________________|_________________|_______________________|                                                                                                     ')




button_01 = ttk.Button(labelframe,text='修改',command = xiuUse)
button_01.grid(row=2, column=2)

button_01 = ttk.Button(labelframe,text='搜索',command = soso)
button_01.grid(row=2, column=13)
button_02 = ttk.Button(labelframe,text='重置',command=listdisplay)
button_02.grid(row=2, column=14)

label=Label(root)
label.grid(row=99, column=100)

button_02 = ttk.Button(root,command=selfdata('select Name, Phone, Department,Post,City,Status from user '))
button_02.grid(row=100, column=100)




button_01 = ttk.Button(labelframe,text='新增',command=addUse)
button_01.grid(row=2, column=1)
mainloop()
非常详细的python图形界面组件开发教程,以代码的形式解析讲解,且所有代码都可直接运行,非常容易上手。 这系列教程完全以代码的形式来写的,目标是:读者看代码和注释就可以理解代码的意思。但这里的读者需要具备的几项技能: 1熟悉python语言的基础,如果还没有,先看一下python的教程吧,英文官方(http://docs.python.org/tut/tut.html); 2对界面编程有一定的了解,知道基本的概念就可以了; 3对Tk有兴趣,别以为她是已经过时的技术,如果丧失了学习的兴趣,那肯定无法完成了; 4不要以Ctrl+C/Ctrl+V的方式使用本教程(虽然它可以这样直接运行),自己输入,你会发现自己原来也会犯这样的错误; 5安装了python2.5且确认安装了Tkinter模块(默认就安装了,如果你没有强制的把它去掉的话),下载python2.5(http://www.python.org/download/); 6如果在阅读教程中有不明白的,不要强迫自己,直接跳过去,继续下一个内容。 Tkinter教程系列教程的特点: 7他不是一本经过文字润色的文章,全部是代码,作者在必要的时候使用注释来解释; 8以组件为章节进行介绍,每个组件又分为不同的例子,各个例子可以单独使用,分别使用序号标注; 9各个例子的使用“注释+序号”的格式表示开始,下一个例子的开始为上一个例子的结束; 10全部使用结构化编程(SP),没有面向对象的概念(OO); 11基本上包含了TKinter的所有的控件,根据每个控件的使用方法,选择性的介绍了其属性和方法,没有全部介绍,全部的介绍查看Tkinter的官方参考(http://www.pythonware.com/library/tkinter/introduction/); 12例子不是百分百的完美,甚至有的例子没有按照Tkinter参考的描述完成,原因由于作者没有看懂:( 13参考书籍:http://www.pythonware.com/library/tkinter/introduction/,如有冲突以Tkinter参考为准
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Bug来袭~

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值