在python3中创建一个tkintsimple tkinter frirlist应用程序
我们不需要任何要求,因为我们将使用所有的脱位。
让我们为UI创建数据库
db.py
import sqlite3
def Friendlist():
conn=sqlite3.connect("Friend")
cur=conn.cursor()
cur.execute("create table if not exists friendlist(id integer primary key,name text,facebook text,instagram text,whatsapp text)")
conn.commit()
conn.close()
def add_friendlist(name,facebook,instagram,whatsapp):
conn=sqlite3.connect("Friend")
cur=conn.cursor()
cur.execute("insert into friendlist values(null,?,?,?,?)",(name,facebook,instagram,whatsapp))
conn.commit()
conn.close()
def view_friendlist():
conn=sqlite3.connect("Friend")
cur=conn.cursor()
cur.execute("select * from friendlist")
row=cur.fetchall()
conn.close()
return row
def delete_friendlist(id):
conn=sqlite3.connect("Friend")
cur=conn.cursor()
cur.execute("delete from friendlist where id=?",(id,))
conn.commit()
conn.close()
def update_friendlist(id,name=" ",facebook=" ",whatsapp=" ",instagram=" "):
conn=sqlite3.connect("Contact")
cur=conn.cursor()
cur.execute("select * from friendlist where name=? or facebook=? or whatsapp=? or instagram=?",(name,facebook,whatsapp,instagram,id))
conn.commit()
conn.close()
Friendlist()
现在,一旦我们创建db.py,请确保运行它。
当我们运行db.py时,我们将能够检索文件名
friends.db
现在创建我们的GUI。将新文件创建为 app.py
app.py
"""
This is desktop application for adding friends in database
tkinter project
"""
from tkinter import *
from tkinter import ttk
from db import *
import tkinter.messagebox
class FriendList:
def __init__(self,root):
self.root=root
self.root.title("Friend list")
self.root.geometry("400x450")
# self.root.iconbitmap("./favicon.ico")
self.root.resizable(0,0)
# variable for taking inputs from entry
sid=StringVar()
name=StringVar()
facebook=IntVar()
instagram=IntVar()
whatsapp=IntVar()
# function for button
# for adding data in database
def add():
try:
if facebook.get()==1:
face="present"
else:
face="not present"
if instagram.get()==1:
insta="present"
else:
insta="not present"
if whatsapp.get()==1:
whats="present"
else:
whats="not present"
if name.get()!="":
add_friendlist(name.get(),face,insta,whats)
show()
else:
tkinter.messagebox.showerror('Error',"Please Add Your Friend Name")
except Exception as e:
print(e)
# showing data from database to contact_tree
def show():
contact_trees.delete(*contact_trees.get_children())
for row in view_friendlist():
contact_trees.insert('',END,values=row)
# deleting data from database
def delete():
delete_friendlist(sid.get())
sid.set("")
show()
# update database
def update():
try:
if sid.get()!="":
delete_friendlist(sid.get())
if name.get()!="":
if facebook.get()==1:
face="present"
else:
face="not present"
if instagram.get()==1:
insta="present"
else:
insta="not present"
if whatsapp.get()==1:
whats="present"
else:
whats="not present"
add_friendlist(name.get(),face,insta,whats)
show()
else:
tkinter.messagebox.showerror("Error","Please Select what you have to update and also write Id")
except:
pass
# This is for hovering button
def on_enter1(e):
but_add['background']="black"
but_add['foreground']="cyan"
def on_leave1(e):
but_add['background']="SystemButtonFace"
but_add['foreground']="SystemButtonText"
def on_enter2(e):
but_update['background']="black"
but_update['foreground']="cyan"
def on_leave2(e):
but_update['background']="SystemButtonFace"
but_update['foreground']="SystemButtonText"
def on_enter3(e):
but_delete['background']="black"
but_delete['foreground']="cyan"
def on_leave3(e):
but_delete['background']="SystemButtonFace"
but_delete['foreground']="SystemButtonText"
def on_enter4(e):
but_show['background']="black"
but_show['foreground']="cyan"
def on_leave4(e):
but_show['background']="SystemButtonFace"
but_show['foreground']="SystemButtonText"
#====================frame==============================#
mainframe=Frame(self.root,width=400,height=450,relief="ridge",bd=3)
mainframe.place(x=0,y=0)
firstframe=Frame(mainframe,width=394,height=230,relief="ridge",bd=3)
firstframe.place(x=0,y=0)
secondframe=Frame(mainframe,width=394,height=214,relief="ridge",bd=3)
secondframe.place(x=0,y=230)
#======================firstframe========================#
lab_name=Label(firstframe,text="Enter Name",font=('times new roman',15))
lab_name.place(x=150,y=10)
identry=Entry(firstframe,width=3,font=('times new roman',14),relief="ridge",bd=3,textvariable=sid)
identry.place(x=27,y=50)
ent_name=Entry(firstframe,width=25,font=('times new roman',15),relief='ridge',bd=3,justify="center",textvariable=name)
ent_name.place(x=65,y=50)
but_show=Button(firstframe,text="List",width=4,font=('times new roman',14),cursor="hand2",command=show)
but_show.place(x=325,y=45)
but_show.bind("<Enter>",on_enter4)
but_show.bind("<Leave>",on_leave4)
facebook_cbutton=Checkbutton(firstframe,text="facebook",variable=facebook,font=('times new roman',15),onvalue=1,offvalue=0)
facebook_cbutton.place(x=15,y=110)
instagram_cbutton=Checkbutton(firstframe,text="Instagram",variable=instagram,font=('times new roman',15),onvalue=1,offvalue=0)
instagram_cbutton.place(x=135,y=110)
whatsapp_cbutton=Checkbutton(firstframe,text="Whatsapp",variable=whatsapp,font=('times new roman',15),onvalue=1,offvalue=0)
whatsapp_cbutton.place(x=255,y=110)
but_add=Button(firstframe,text="Add",width=10,font=('times new roman',14),cursor="hand2",command=add)
but_add.place(x=10,y=170)
but_add.bind("<Enter>",on_enter1)
but_add.bind("<Leave>",on_leave1)
but_update=Button(firstframe,text="Update",width=10,font=('times new roman',14),cursor="hand2",command=update)
but_update.place(x=135,y=170)
but_update.bind("<Enter>",on_enter2)
but_update.bind("<Leave>",on_leave2)
but_delete=Button(firstframe,text="Delete",width=10,font=('times new roman',14),cursor="hand2",command=delete)
but_delete.place(x=260,y=170)
but_delete.bind("<Enter>",on_enter3)
but_delete.bind("<Leave>",on_leave3)
#===================================secondframe==================================================#
def game(event):
crow=contact_trees.focus()
contents=contact_trees.item(crow)
row=contents['values']
sid.set(row[0])
name.set(row[1])
scol=Scrollbar(secondframe,orient="vertical")
scol.place(relx=1, rely=0, relheight=1, anchor='ne')
contact_trees=ttk.Treeview(secondframe,columns=("ID","Name","Facebook","Instagram","Whatsapp"),height=9,yscrollcommand=scol.set)
contact_trees.heading("ID",text="ID")
contact_trees.heading("Name",text="Name")
contact_trees.heading("Facebook",text="Facebook")
contact_trees.heading("Instagram",text="Instagram")
contact_trees.heading("Whatsapp",text="Whatsapp")
contact_trees['show']="headings"
contact_trees.column("ID",width=30,minwidth=10)
contact_trees.column("Name",width=110,minwidth=40)
contact_trees.column("Facebook",width=76,minwidth=40)
contact_trees.column("Instagram",width=76,minwidth=40)
contact_trees.column("Whatsapp",width=76,minwidth=40)
contact_trees.place(x=0,y=0)
contact_trees.bind('<ButtonRelease-1>',game)
if __name__=="__main__":
root=Tk()
FriendList(root)
root.mainloop()
现在只运行应用程序
python app.py
运行后,您将获得下面的GUI。
谢谢!