在不使用lineEdit的情况下更改QComboxBox的标签

时间:2016-04-25 13:37:49

标签: c++ qt

目前我想实现一个小部件,允许用户启用/取消所有提供的QSet选项。所以我拿了一个组合框并添加了可选项。到目前为止一切顺利,但我怎么能改变组合框中显示的文字?目前我的所有项目只有ItemIsUserCheckable和ItemIsEnabled作为启用标志(未启用ItemIsSelectable),因此ComboBox的文本始终是第一项的文本。相反,我想要文本“Flag1,Flag 3,Flag6”,如果有多个标志和用户启用标志1,3和6.但setCurrentText和setEditText需要setEditable(true)或自定义lineEdit。但是使用lineEdit正在改变外观。那还有另一种方式吗?

1 个答案:

答案 0 :(得分:0)

一段时间我遇到了类似的问题,我最后通过在我的模型中添加一个额外的项目来解决它,该模型是列表中的第一个并始终设置为当前项目。然后,我根据需要将其文本更新为“选择项目...”或“选择了X项目”。