QTableWidget一次显示一定数量的行

时间:2017-08-14 15:30:55

标签: c++ qt

我有一个大的qtablewidget。让我们说200行。在QListWidget中,有setMaxVisibleItems(30),这非常有用。什么是qtablewidget的等价物,除了行。 IE浏览器。 setMaxVisibleRows?

我考虑过为我的窗口设置最大高度。但是,此应用程序可用于不同的DPI。所以,对某些人来说可能很小。另外,这感觉就像一个不必要的限制。

我也看到了这一点:How to show only 30 rows and hide the remaining rows of QTableWidget

但是,无论如何都不一样。

非常感谢您的进步!

1 个答案:

答案 0 :(得分:0)

我要做的最好方法是使用Qt' void QTableView::setRowHidden(int row, bool hide)

  

void QTableView :: setRowHidden(int row,bool hide):

     

如果hide为true,则会隐藏行,否则会显示。

如果你知道你的桌子的数量,你可以使用它,你必须使用model并使用rowCount()

然后for循环应该很简单:

for(int i = startHidingHere; i < numOfRows; i++)
    myTable->setRowHidden(i, true);

显然,您可以使用类似的方法来隐藏它们。如果将来需要,此方法也适用于过滤器。

其他可能有用的方法:

bool QTableView::isRowHidden(int row);

void QTableView::setColumnHidden(int column, bool hide);

void QTableView::setModel(QAbstractItemModel *model);
->   int QAbstractItemModel::rowCount(const QModelIndex & parent = QModelIndex()) const