QCombobox - 隐藏下拉列表中的第一项
QCombobox - hide first item on drop-down
各位开发者大家好!
我想实现一个 "Action" QCombobox,其中不同的选项触发一个动作而不是选择一个选项。组合框显示类似 "Add Property" 的内容,当用户单击它时,他会获得不同的属性以供选择。如果用户单击其中之一,它将被添加到-whateverdoesntmatter-。然后组合框切换回其原始状态。
问题是,第一个条目 "Add Property" 显示在组合框的下拉列表中,这给用户造成了一点困惑,因为它并不是真正的操作。
正常状态:
[Add Property]
下拉状态:
[Add Property]
Add Property
Length
Width
etc ...
因此,我想在组合框下拉时隐藏第一个选项以实现此行为:
[Add Property]
Length
Width
etc ...
我已经尝试对组合框进行子类化并覆盖 showPopUp() 和 hidePopUp() - 但我无法弄清楚如何获得预期的行为。
想法?谢谢!
如果您不是绝对需要 QComboBox
,您可能会 better/easier 使用 QToolButton
关联 QMenu
,然后设置按钮的 popupMode
到适当的值。
您甚至可以使用 QToolBar
。只需添加带有所需标签的 QAction
(如 添加 属性),通过 QAction::setMenu
将菜单关联到它,然后将其关联到工具栏。工具栏将自动创建工具按钮。
要访问 popupMode
属性,您可以使用 QToolBar::widgetForAction
并将其转换为 QToolButton
。
各位开发者大家好!
我想实现一个 "Action" QCombobox,其中不同的选项触发一个动作而不是选择一个选项。组合框显示类似 "Add Property" 的内容,当用户单击它时,他会获得不同的属性以供选择。如果用户单击其中之一,它将被添加到-whateverdoesntmatter-。然后组合框切换回其原始状态。
问题是,第一个条目 "Add Property" 显示在组合框的下拉列表中,这给用户造成了一点困惑,因为它并不是真正的操作。
正常状态:
[Add Property]
下拉状态:
[Add Property]
Add Property
Length
Width
etc ...
因此,我想在组合框下拉时隐藏第一个选项以实现此行为:
[Add Property]
Length
Width
etc ...
我已经尝试对组合框进行子类化并覆盖 showPopUp() 和 hidePopUp() - 但我无法弄清楚如何获得预期的行为。
想法?谢谢!
如果您不是绝对需要 QComboBox
,您可能会 better/easier 使用 QToolButton
关联 QMenu
,然后设置按钮的 popupMode
到适当的值。
您甚至可以使用 QToolBar
。只需添加带有所需标签的 QAction
(如 添加 属性),通过 QAction::setMenu
将菜单关联到它,然后将其关联到工具栏。工具栏将自动创建工具按钮。
要访问 popupMode
属性,您可以使用 QToolBar::widgetForAction
并将其转换为 QToolButton
。