我有一个包含10,000条记录的QTableWidget。我需要一次只显示30行并隐藏剩余的行。在拖动/单击垂直滚动条时,它应显示相应的行并隐藏其他行。
即,如果单击上部滚动按钮,则应显示另一个上部项目并隐藏一个下部项目,反之亦然。它也应该在滚动时发生。
有人可以帮我这么做吗?
答案 0 :(得分:0)
答案 1 :(得分:0)
我不知道是否明确地显示/隐藏事物是你想去的方式。相反,看看Qt的模型和视图类。如果您使用的是数据库,请查看QSqlTableModel,它应该为您处理这些事情。否则,请查看Model-View programming文档,related examples,尤其是关于optimizing for performance的部分(尽管在模型中,10,000条记录对于大多数用途来说并不是那么多)
答案 2 :(得分:0)
我认为你可以捕捉上/下按钮的事件,就像Nicholas所说,为了跟踪滑块/滚动条你需要使用'setTracking(true)'然后处理信号'valueChanged(int)'或者'sliderMoved(INT)'。
谢谢, 普拉迪普
答案 3 :(得分:0)
有一种方法可以将表格滚动从像素更改为项目。在表的Designer属性编辑器中,在 QAbstractItemView 部分中,有一个 VerticalScrollMode 选项。这可以是 ScrollPerPixel 或您可能想要的, ScrollPerItem 。
这可能会改变信号从像素到项目的行为,这将使您的计算更容易。
我正在使用4.4.3。