【问题标题】:QTableWidget display certain number of rows at a timeQTableWidget 一次显示一定数量的行
【发布时间】:2017-08-14 15:30:54
【问题描述】:

我有一个大的 qtablewidget。假设有 200 行。在 QListWidget 中有 setMaxVisibleItems(30),非常有用。 qtablewidget 的等价物是什么,除了行。 IE。设置MaxVisibleRows?

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

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

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

非常感谢您!

【问题讨论】:

  • 为了澄清。你想显示前 30 行吗?还是您想根据过滤器之类的内容显示行?
  • 澄清一下,是的。前三十行。就好像用户调整了列表的大小,使得只有前 30 个可见——其余的通过滚动可见。

标签: c++ qt


【解决方案1】:

最好的方法是使用 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

【讨论】:

    猜你喜欢
    • 2012-08-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多