Tkinter: проблема с определением двух курсоров для одного и того же значения базы данных, отображаемого в двух разных Treeview - PullRequest
1 голос
/ 30 апреля 2020

Первая проблема: в моем Tkinter GUI у меня есть два дерева, которые имеют общую запись базы данных "MASA". Я определяю два кода get_cursor (get_cursor1, get_cursor2), но "MASA" отображается только в первом обзоре. Что я не прав? Как я могу исправить?

Вторая проблема: self.rez_oda_var.set (row [0]) IndexError: строковый индекс вне диапазона

'' '

=== ========= ПЕРВЫЙ ТРЕНИРОВОК ================

    list_Frame = Frame(rec_frame)

    self.rez_table = ttk.Treeview(list_Frame, selectmode="extended", columns=("MASA"), xscrollcommand = scroll_x.set, yscrollcommand = scroll_y.set)


    self.rez_table.heading("MASA", text="MASA", anchor="w")
    self.rez_table["show"] = "headings"
    self.rez_table.pack(fill=BOTH, expand=1)
    self.rez_table.bind("<ButtonRelease-1>", self.get_cursor1)
    self.fetch_data()

    def get_cursor1(self, event):
    cursor_row = self.rez_table.focus()
    contents = self.rez_table.item(cursor_row)
    row = contents["values"]

    self.rez_masa_var.set(row[2])

============ ВТОРОЙ ТРЕНИРОВОК =================

    masa_Frame = Frame(masa_frame)

    self.masa_table = ttk.Treeview(masa_Frame, selectmode="extended", columns=("MASA"), yscrollcommand = scroll_y.set)

    self.masa_table.heading("MASA", text="MASA", anchor="w")
    self.masa_table.column("MASA", width=40, minwidth=50)
    self.masa_table["show"] = "headings"
    self.masa_table.pack(fill=BOTH, expand=1)
    self.masa_table.bind("<ButtonRelease-1>", self.get_cursor2)
    self.fetch_data()


    def get_cursor2(self, event):
    cursor_row = self.masa_table.focus()
    contents = self.masa_table.item(cursor_row)
    row = contents["values"]

    self.rez_masa_var.set(row[0])

============ SELF.FETCH.DATA ======= ==========

    def fetch_data(self):
    con=pymysql.connect(host="localhost", user="root", password="", 
    database="kayıtlar")
    cur=con.cursor()
    cur.execute("select * from reservation")
    rows=cur.fetchall()
    if len(rows)!=0:
            self.rez_table.delete(*self.rez_table.get_children())
            for row in rows:
                    self.rez_table.insert("", END, values=row)
    con.commit()
    self.temizle()
    con.close()

'' '

СМОТРЕТЬ, КАК:

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...