在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問(wèn)答/Python/ PyQt表格內(nèi)容動(dòng)態(tài)加載。

PyQt表格內(nèi)容動(dòng)態(tài)加載。

最近在用PyQt5做界面開(kāi)發(fā),需求是讀取數(shù)據(jù)文件(來(lái)自數(shù)據(jù)庫(kù),文件,內(nèi)存都可以),顯示在QTableWidget中。當(dāng)前使用的方法是網(wǎng)上大部分用的讀取一個(gè)內(nèi)容然后用QTableWidget的setItem方法顯示在QTableWidget中。
`for i in range(rows):

 for j in range(cols):
       temp_data = df.values[i][j]  # 臨時(shí)記錄,不能直接插入表格
            data = QTableWidgetItem(str(temp_data))  # 轉(zhuǎn)換后可插入表格
            self.table.setItem(i, j, data)`

這種方式在數(shù)據(jù)量在幾千幾萬(wàn)行的時(shí)候還可以顯示,當(dāng)數(shù)據(jù)量到達(dá)幾十萬(wàn)行以上時(shí)就不行了,巨慢。而一個(gè)頁(yè)面一次顯示的行數(shù)是有限的,其他的行靠滾輪滑動(dòng)來(lái)顯示,那么在PyQt里面有沒(méi)有一種方法,一次只顯示一定行數(shù)的數(shù)據(jù),其它的行在滑輪滾動(dòng)時(shí)動(dòng)態(tài)顯示?

回答
編輯回答
互擼娃

數(shù)據(jù)先保存在list里,用一個(gè)變量指示當(dāng)前被顯示的最頂行,然后在QWheelEventQScrollBarvalueChanged的槽函數(shù) 中 刪除不需要顯示的行并添加需要被顯示的新的行就可以啦。

2018年8月7日 00:52