如何在QTableView列中显示下拉列表并根据下拉列表进行过滤

时间:2011-07-04 12:04:04

标签: qt

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

我该如何实现?

3 个答案:

答案 0 :(得分:4)

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

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

但是仍然有一段时间性能问题,我尝试用Qt在C ++中进行,但它并不像Web语言那样简单。

答案 1 :(得分:2)

这是一个非常普遍的问题,如果我尝试解释它,它会占用页面,所以如果你阅读Qt model/view architecture documentation会更好。

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

答案 2 :(得分:2)

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