如何在Python GUI应用中重用CTk标签视图?
我正在尝试找出如何在我的Python图形界面应用程序中重用带有文本框的标签视图,使用的是CTK库。目前我采用的方法是删除所有的标签视图,然后创建一个新的标签视图,并在里面填充数据。
这样做非常麻烦,因为每次重新创建标签视图时,都会导致我的图形界面变得扭曲和卡顿。我希望能找到一种方法,可以重用现有的标签视图,或者预先创建三个默认的标签视图,每个标签视图里面都有一个文本框,然后只需重新写入数据和标签视图的标题。我在这方面遇到了困难,不知道有没有我遗漏的解决办法?如果能提供一些处理卡顿和界面扭曲的方法,我将非常感激。
def update_tabview(self, data_list):
if self._prev_data_list == data_list:
return
self._prev_data_list = data_list.copy() if data_list else None
my_tabview = self.tabview
current_tabs = my_tabview._name_list.copy()
for tab in current_tabs:
my_tabview.delete(tab)
if len(data_list) == 0:
my_tabview.add("Default TabView")
else:
for data in data_list:
name = data["name"]
my_tabview.add(name)
textbox = ctk.CTkTextbox(my_tabview.tab(name), wrap="word",
font=("Helvetica", 14, "bold"), width=380, height=260)
textbox.grid(row=0, column=0, padx=(5, 5), pady=(5, 10), sticky="nsew")
textbox.insert(tk.END, "TEXT" + "\n" + "\n")
textbox.insert(tk.END, data["a"] + "\n")
textbox.insert(tk.END, "\n" + "TEXT" + "\n\n")
for text in data["b"]:
textbox.insert(tk.END, text + "\n")
textbox.insert(tk.END, "\n" + "TEXT" + "\n\n")
for text in data["c"]:
textbox.insert(tk.END, text + "\n")
textbox.insert(tk.END, "\n" + "TEXT" + "\n\n")
for text in data["d"]:
textbox.insert(tk.END, text + ", ")
textbox.configure(state='disabled')
0 个回答
暂无回答