你好开发人员了!
我想实现一个"行动" QCombobox,其中不同的选项触发操作而不是选择选项。组合框说的是" Add Property"当用户点击它时,他会获得不同的属性供您选择。如果用户单击其中一个,则会将其添加到-whateverdoesntmatter-。组合框比切换回它的原始状态。
问题是,第一个条目"添加属性"在组合框的下拉列表中显示,因为它实际上不是一个动作,因此给用户带来一些混乱。
正常状态:
[Add Property]
下拉状态:
[Add Property]
Add Property
Length
Width
etc ...
因此,我想在组合框落下时隐藏第一个选项以实现此行为:
[Add Property]
Length
Width
etc ...
我已经尝试过子类化组合框并覆盖showPopUp()和hidePopUp() - 但我无法弄清楚如何获得我的预期行为。
想法?谢谢!
答案 0 :(得分:1)
如果您不是绝对需要QComboBox
,那么使用与QToolButton
相关联的QMenu
可能会更好/更轻松,然后设置按钮' s { {1}}到适当的值。
您甚至可以使用popupMode
。只需添加带有所需标签的QToolBar
(例如添加属性),通过QAction
将菜单与其相关联,然后将其与工具栏相关联。工具栏将自动创建工具按钮。
要访问QAction::setMenu
媒体资源,您可以使用popupMode
并将其投放到QToolBar::widgetForAction
。