问题描述
您好 ٍEveryOne Of brothers 我有一个问题是关于我正在编写的电话簿的新程序,我的问题是关于 Checkbutton 和 Button 我想从数据库中创建一个带有姓名、家庭和地址的数字列表我让这个列表为每个数字有 1 个复选按钮和两个用于编辑和删除的按钮,现在我正在寻找一种方法来了解列表中的所有复选按钮和按钮如何相互连接,这意味着列表中的每个记录都来自数据库核心托顿和按钮的按钮,在一个连接中,当该支票禁止将这些按钮选择这些按钮,用于从数据库中的那个记录的编辑和删除工作,以便我们在此列表中的每个记录都必须与核心区和按钮进行连接,以便操作在它和数据库中的这种变化中看到。
from sqlite3.dbapi2 import enable_callback_tracebacks
from tkinter import *
from tkinter import ttk
import sqlite3
from tkinter import messageBox
from typing import Sized
from PIL import ImageTk,Image
win = Tk()
win.geometry("1250x800")
win.title('PhoneBook Of Manoochehr')
win.iconbitmap('icon.ico')
s = list
my_pic = Image.open('pic4.jpg')
resized = my_pic.resize((1250,800),Image.ANTIALIAS)
new_pic = ImageTk.PhotoImage(resized)
my_label = Label(win,image=new_pic)
my_label.pack()
lb = Label(win,text='Name',font=5)
lb.place(x=900,y=40)
en = Entry(win,width = 60,bd = 3,font=('Arial',15) )
en.place(x = 225,y = 42)
lb1 = Label(win,text='Familly :',font=5)
lb1.place(x=835,y=90)
en1 = Entry(win,15) )
en1.place(x=160,y=93)
lb2 = Label(win,text='Number :',font=5)
lb2.place(x=840,y=195)
en2 = Entry(win,15) )
en2.place(x = 160,y = 195)
lb3 = Label(win,text='Address :',font=5)
lb3.place(x=885,y=245)
en3 = Entry(win,width = 65,15))
en3.place(x = 150,y = 246)
def savebtn():
connection = sqlite3.connect('DBphonebook.db')
c = connection.cursor()
c.execute("INSERT INTO phonebook(Name,Familly,Number,Address)
VALUES('%s','%s','%s')"
%(en.get(),en1.get(),en2.get(),en3.get()))
connection.commit()
connection.close()
messageBox.showinfo("Success","Done!")
en.delete(0,END)
en1.delete(0,END)
en2.delete(0,END)
en3.delete(0,END)
btn = Button(win,text='Save',padx=50,pady=10,font=20,background='pink',command=savebtn)
btn.place(x= 700,y=350)
def clear_edit_btn():
global s
connection = sqlite3.connect('DBphonebook.db')
c = connection.cursor()
search = c.execute('SELECT * FROM phonebook')
s = list(search)
x = 0
top1 = Toplevel()
top1.geometry("1250x800")
top1.title('Edit And Delete')
main_frame = Frame(top1)
main_frame.pack(fill=BOTH,expand=1,pady=50)
my_canvas = Canvas(main_frame)
my_canvas.pack(side=LEFT,fill=BOTH,expand=1)
my_scrollbar = ttk.Scrollbar(main_frame,orient=VERTICAL,command=my_canvas.yview)
my_scrollbar.pack(side=RIGHT,fill=Y)
my_canvas.configure(yscrollcommand=my_scrollbar.set)
my_canvas.bind('<Configure>',lambda e:
my_canvas.configure(scrollregion=my_canvas.bBox("all")))
second_frame = Frame(my_canvas)
second_frame.configure(background='GREEN')
my_canvas.create_window((0,0),window=second_frame,anchor="nw")
lbl = Label(top1,text='Address',font=5)
lbl.place(x=495,y=15)
lbl = Label(top1,text='Number',font=5)
lbl.place(x=870,text='Familly',font=5)
lbl.place(x=990,font=5)
lbl.place(x=1145,y=15)
def deletebtn(arg):
global s
a = 0
a += 1
for j in s:
if arg == a:
connection = sqlite3.connect('DBphonebook.db')
c = connection.cursor()
c.execute("DELETE from phonebook WHERE Name= :Name AND Familly=
:Familly AND Number= :Number AND Address= :Address",{'Name':j[0],'Familly':j[1],'Number':j[2],'Address':j[3]})
connection.commit()
connection.close()
b = 0
for i in s:
b += 1
x += 20
Button(second_frame,text='Edit',bd=3).grid(row=x,column=100,padx=10)
Button(second_frame,text='Delete',bd=3,command=lambda:
deletebtn(b)).grid(row=x,column=50,padx=10)
Checkbutton(second_frame).grid(row=x,column=0,padx=10)
lb = Label(second_frame,text=i[3]).grid(row=x,column=150,padx=130)
lb = Label(second_frame,text=i[2]).grid(row=x,column=200,padx=30)
lb = Label(second_frame,text=i[0]).grid(row=x,column=300,text=i[1]).grid(row=x,column=250,padx=30)
btn1 = Button(win,text='List,Edit And Delete',command=clear_edit_btn)
btn1.place(x= 300,y=350)
win.mainloop()
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)