各位开发人员好!
我想实现一个"动作"QCombobox,其中不同的选项触发一个动作,而不是选择一个选项。组合框显示类似"添加属性"的东西,当用户单击它时,他会得到不同的属性可供选择。如果用户单击其中一个,则将其添加到-whateverdoesn ' tmatter-中。组合框会切换回原来的状态。
问题是,第一个条目"Add Property"显示在组合框的下拉菜单上,这给用户造成了一点困惑,因为它不是一个真正的操作。
正常状态:[Add Property]
下拉状态:
[Add Property]
Add Property
Length
Width
etc ...
因此,我想在组合框下拉时立即隐藏第一个选项以实现此行为:
[Add Property]
Length
Width
etc ...
我已经尝试了子类化组合框和覆盖showPopUp()和hidePopUp() -但我不知道如何得到我的预期行为。
想法?谢谢!
如果你不是绝对需要QComboBox
,你可能会更好/更容易使用QToolButton
与QMenu
相关联,然后将按钮的popupMode
设置为适当的值。
您甚至可以使用QToolBar
。只需添加一个QAction
与您想要的标签(如 add Property),通过QAction::setMenu
将菜单关联到它,并将其添加到工具栏。工具栏会自动创建工具按钮。
要访问popupMode
属性,您可以使用QToolBar::widgetForAction
并将其强制转换为QToolButton
。