如何在数据库记录的复选框和按钮之间建立连接?

问题描述

您好 ٍ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 (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...