【问题标题】:How to display drop-down in column of QTableView and filter based on drop-down如何在 QTableView 的列中显示下拉列表并根据下拉列表进行过滤
【发布时间】:2011-07-04 12:04:04
【问题描述】:

我是 Qt 的新手。我必须在QTableView 中显示一大块数据并按列过滤。为此,我使用了QSortFilterProxyModel,但根据要求,QTableView 的每一列都应该有一个下拉列表,显示该列中的唯一值。在下拉列表中选择这些值中的任何一个时,只有在列中具有该特定值的行才会显示在 QTableView 中(就像在 Excel 中一样)。

我将如何实现这个?

【问题讨论】:

  • 虽然它是用于旋转框,而不是组合框,但标准 Qt 示例 spinboxdelegate 展示了如何创建 QItemDelegate 子类来做你想做的事。

标签: qt


【解决方案1】:

一周前我遇到了同样的问题 我找到了一个教程,解释了如何做到这一点。见下面的链接 http://programmingexamples.net/wiki/Qt/Delegates/ComboBoxDelegate

现在我的问题是如何检索特定组合框的值。 我认为在 C++ 和 Qt 中将组合框显示到 tableView 中是一件如此复杂的事情。 作为一名网络开发人员,我可以说网络语言更适合做这些事情。

但是性能仍然需要一些时间,我尝试在 C++ 中使用 Qt 来实现,但这并不像在 Web 语言中那样容易。

【讨论】:

    【解决方案2】:

    这是一个非常笼统的问题,如果我试图解释它会占用页面,所以最好阅读 Qt model/view architecture documentation

    您可以创建自己的继承自QTableView 的类来创建您的自定义表格视图。您必须将委托用于下拉功能和所有功能。所以请阅读QItemDelegate 类文档和documentation on subclassing delegates

    【讨论】:

      【解决方案3】:

      如果您想始终显示它而不仅仅是在编辑时显示,我建议为特定列设置一个小部件,如该线程中所述:Qt - QTableView - Clickable button in table row

      【讨论】:

        猜你喜欢
        • 2017-08-12
        • 1970-01-01
        • 1970-01-01
        • 2021-08-19
        • 1970-01-01
        • 1970-01-01
        • 2014-07-26
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多