Помогите подвязать бд к id прямоугольника, его id == int
Это часть проекта. Суть заключается в том, что при нажатии на картинку происходит ее отклик, а при движении колесика она меняет координаты по y(Формула работает не правильно). Плюс при повторном запуске старые картинки остаются и взаимодействуют. Вместо картинки подставьте любой не большой прямоугольник
from tkinter import *
import sqlite3
count = 0
conn = sqlite3.connect('БД_картинок_и_текста.db')
cur = conn.cursor()
cur.execute("""CREATE TABLE IF NOT EXISTS users(
kartinka TEXT,
tekst TEXT);
""")
conn.commit()
class MainWindow(Tk):
def __init__(self):
super().__init__()
self.list_a = []
self.canvas = Canvas(self)
self.canvas.pack()
button = Button(self, text="Создать прямоугольник", command=self.new_rectangle)
button.pack()
self.rect_counter = 0
self.rect_y = 0
self.knop1 = PhotoImage(file="картинка.png")
def new_rectangle(self):#
rectangle_id = self.canvas.create_image(10, 10 + self.rect_y, image=self.knop1)
text_id = self.canvas.create_text(10, 10 + self.rect_y, text='jgjfdigf')
self.rect_counter += 1#
self.canvas.tag_bind(rectangle_id, '<Button-1>', lambda event, rect_number=self.rect_counter: self.on_hover(event, rect_number))
self.canvas.tag_bind(text_id, '<Button-1>', lambda event, rect_number=self.rect_counter: self.on_hover(event, rect_number))
self.rect_y += 70
self.canvas.bind('<MouseWheel>', self.on_hover2)
self.canvas.bind('<MouseWheel>', self.on_hover2)
self.list_a.append([rectangle_id, text_id])
print(self.list_a[0][0])
def on_hover2(self, event):
global count
if event.num == 5 or event.delta == -120:
count -= 6
if event.num == 4 or event.delta == 120:
count += 6
for i in range(self.rect_counter):
self.canvas.delete(self.list_a[i][0])
self.canvas.delete(self.list_a[i][1])
self.list_a.pop(i)
self.rect_y = 70
rectangle_id = self.canvas.create_image(10, count+self.rect_y*i, image=self.knop1)
text_id = self.canvas.create_text(10, 10+count+self.rect_y*i, text='jgjfdigf')
self.list_a.append([rectangle_id, text_id])
def on_hover(self, event, rect_number):
print("Мышь над прямоугольником", rect_number)
if __name__ == "__main__":
root = MainWindow()
root.mainloop()