【问题标题】:How to hide a row of a QTableWidget without changing the index of the entries?如何在不更改条目索引的情况下隐藏 QTableWidget 的一行?
【发布时间】:2026-01-08 06:50:01
【问题描述】:

我在 QDialog 中有一个包含 7 个列的 QTableWidget,其中每一行都有关于特定目录中文件的信息。 通过一些复选框、行编辑等,我希望能够仅显示具有特定文本的文件,我可以在 lineEdit 中手动添加这些文件。

是否有可能检查每一行,如果它包含 lineEdit-text 并且如果不隐藏该行(不更改其他行的任何索引,我不必隐藏)?

【问题讨论】:

  • 据我了解,在每一行中都有一个包含文本的项目,您希望这些行的文本等于出现在 QLineEdit 中的文本。我说的对吗?
  • 是的,完全正确。我发现了这个:QTableWidget->hideRow(int i)。它可以用吗?
  • 是的,使用QLineEdit的textChanged方法,在你使用的槽中迭代item,如果不符合条件,用那个方法隐藏行
  • 谢谢你,完美! :)

标签: qt qt5 qtablewidget qlineedit qdialog


【解决方案1】:

对于需要这种可能性的人来说,这很容易,我是这样做的:

for(int i=0; i<tableWidget->rowCount(); i++)
{
    if(lineEdit->text() != tableWidget->(i, 0)->text())
    {
         tableWidget->hideRow(i);
    }
}

【讨论】:

    最近更新 更多