PyQt表格内容动态加载。

新手上路,请多包涵

最近在用PyQt5做界面开发,需求是读取数据文件(来自数据库,文件,内存都可以),显示在QTableWidget中。当前使用的方法是网上大部分用的读取一个内容然后用QTableWidget的setItem方法显示在QTableWidget中。
`for i in range(rows):

 for j in range(cols):
       temp_data = df.values[i][j]  # 临时记录,不能直接插入表格
            data = QTableWidgetItem(str(temp_data))  # 转换后可插入表格
            self.table.setItem(i, j, data)`

这种方式在数据量在几千几万行的时候还可以显示,当数据量到达几十万行以上时就不行了,巨慢。而一个页面一次显示的行数是有限的,其他的行靠滚轮滑动来显示,那么在PyQt里面有没有一种方法,一次只显示一定行数的数据,其它的行在滑轮滚动时动态显示?

阅读 8.6k
1 个回答

数据先保存在list里,用一个变量指示当前被显示的最顶行,然后在QWheelEventQScrollBarvalueChanged的槽函数 中 删除不需要显示的行并添加需要被显示的新的行就可以啦。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题