隐藏下拉框上的第一个项目



各位开发人员好!

我想实现一个"动作"QCombobox,其中不同的选项触发一个动作,而不是选择一个选项。组合框显示类似"添加属性"的东西,当用户单击它时,他会得到不同的属性可供选择。如果用户单击其中一个,则将其添加到-whateverdoesn ' tmatter-中。组合框会切换回原来的状态。

问题是,第一个条目"Add Property"显示在组合框的下拉菜单上,这给用户造成了一点困惑,因为它不是一个真正的操作。

正常状态:

[Add Property]

下拉状态:

[Add Property]
Add Property
Length
Width
etc ...

因此,我想在组合框下拉时立即隐藏第一个选项以实现此行为:

[Add Property]
Length
Width
etc ...

我已经尝试了子类化组合框和覆盖showPopUp()和hidePopUp() -但我不知道如何得到我的预期行为。

想法?谢谢!

如果你不是绝对需要QComboBox,你可能会更好/更容易使用QToolButtonQMenu相关联,然后将按钮的popupMode设置为适当的值。

您甚至可以使用QToolBar。只需添加一个QAction与您想要的标签(如 add Property),通过QAction::setMenu将菜单关联到它,并将其添加到工具栏。工具栏会自动创建工具按钮。

要访问popupMode属性,您可以使用QToolBar::widgetForAction并将其强制转换为QToolButton

相关内容

  • 没有找到相关文章

最新更新