我有一個具有10,000條記錄的QTableWidget。我需要一次只顯示30行,並隱藏剩餘的行。在拖動/點擊垂直滾動條時,它應該顯示相應的行並隱藏其他行。如何僅顯示30行並隱藏QTableWidget的其餘行
即,如果點擊上滾動按鈕,它應該顯示一個更多的上層項目並隱藏一個下層項目,反之亦然。它也應該在滾動時發生。
任何人都可以幫助我做到這一點?
我有一個具有10,000條記錄的QTableWidget。我需要一次只顯示30行,並隱藏剩餘的行。在拖動/點擊垂直滾動條時,它應該顯示相應的行並隱藏其他行。如何僅顯示30行並隱藏QTableWidget的其餘行
即,如果點擊上滾動按鈕,它應該顯示一個更多的上層項目並隱藏一個下層項目,反之亦然。它也應該在滾動時發生。
任何人都可以幫助我做到這一點?
我認爲你可以捕捉向上/向下按鈕的事件,正如Nicholas所說,跟蹤滑塊/滾動條需要使用'setTracking(true)',然後處理信號'valueChanged(int)'或'sliderMoved(int)'。
感謝, 普拉迪普
Qt不幸的是不會讓你這麼容易,但有辦法做到這一點。取決於你如何填充你的小部件,我建議設置它,以便你最初填充你的30行,然後你需要捕獲來自被點擊的滾動按鈕的信號,並告訴表部件刪除上/下部項目然後添加下一個,這個方法有點權衡,但它會比試圖維護一大堆隱藏行更容易。
感謝您的反饋! 我也有同樣的想法。但如何拖動時跟蹤滾動條? – Shyam
滾動條每次拖動時都會發出移動量爲
我不知道是否明確地顯示/隱藏事情是你想要去的方式。相反,看看Qt的模型和視圖類。如果你正在使用數據庫,看看QSqlTableModel,它應該爲你處理這些事情。否則,請查看Model-View programming文檔,其related examples,尤其是關於的部分(儘管在模型中,對於大多數用途,10,000條記錄並不是那麼多)。
我正在使用csv文件而不是數據庫 – Shyam
有改變表從像素滾動到項目的方式。在表格的Designer Property Editor中,在QAbstractItemView部分中,有一個VerticalScrollMode選擇。這可以是ScrollPerPixel或者你可能想要的,ScrollPerItem。
這可能會改變信號從像素到物品的行爲,這會讓您的計算更容易。
我正在使用4.4.3。
我不清楚你想要做什麼。 – user763305