Tabwidget实现切换页面时加载查询数据且重复切换页面时不要重复加载
在使用tabwidget时,一打开窗口会把每个要查询数据的页面(设计的页面是一打开就查询数据)全部加载完后才显示窗口,造成窗口加载很慢。
解决方法:
把查询数据的代码包装成函数,根据当前页面的索引进行加载,并在加载后写一个标记信息(用set集合记录),进入函数时进行判断,是否在集合中,如果为否则进行后续查询,为是则不进行重复查询。
核心代码如下:
load_win = set() # 用于记录已加载过的页面信息,定义为公共变量
ind = self.tabWidget.currentIndex() # 当前页面索引号
# print('当前索引:',ind)
if ind == 0:
self.display_machine() # 执行查询的数据的函数
def display_machine(self):
tab_name = self.tabWidget.tabText(self.tabWidget.currentIndex())
if tab_name in self.load_win:
return
else:
# 查询数据代码
.......
# 为避免重复打开页面需要重新加载,将页面索引加入
load_win.add(tab_name)
print(load_win)