Python 3.x Tkinter:为显示在两个不同树状视图中的相同数据库值定义两个游标时出现问题
第一个问题: 在我的TkinterGUI中,我有两个TreeView,它们具有公共数据库记录“MASA”。我定义了两个get_游标代码(get_游标1,get_游标2),但“MASA”仅显示在第一个树视图中。我做错了什么?我该怎么修理 第二个问题: self.rez_oda_变量集(第[0]行) 索引器错误:字符串索引超出范围 ''' ===============第一个树景================ '''Python 3.x Tkinter:为显示在两个不同树状视图中的相同数据库值定义两个游标时出现问题,python-3.x,function,tkinter,cursor,Python 3.x,Function,Tkinter,Cursor,第一个问题: 在我的TkinterGUI中,我有两个TreeView,它们具有公共数据库记录“MASA”。我定义了两个get_游标代码(get_游标1,get_游标2),但“MASA”仅显示在第一个树视图中。我做错了什么?我该怎么修理 第二个问题: self.rez_oda_变量集(第[0]行) 索引器错误:字符串索引超出范围 ''' ===============第一个树景================ ''' 您能将此代码缩减为一个吗?请将问题限制为询问单个问题。您最好也发布self.fe
您能将此代码缩减为一个吗?请将问题限制为询问单个问题。您最好也发布
self.fetch_data()
的代码。好的,我将其编辑得更短self.fetch_data()
仅更新self.rez_表
,但不是self.masa_表
。你能把这个代码简化成一个吗?请把问题限制在一个问题上。你最好也发布self.fetch_data()
的代码。好的,我把它编辑得更短self.fetch_data()
只更新self.rez_表
,而不是self.masa_表
。
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])
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()