QCombobox — скрыть первый элемент в выпадающем меню

Привет коллеги разработчики!

Я хочу реализовать QCombobox «Действие», в котором различные опции запускают действие, а не выбирают опцию. Поле со списком говорит что-то вроде «Добавить свойство», и когда пользователь щелкает по нему, он получает различные свойства на выбор. Если пользователь щелкает один из них, он добавляется в -whthingdoesntmatter-. Затем выпадающий список возвращается в исходное состояние.

Проблема заключается в том, что первая запись «Добавить свойство» отображается в выпадающем списке, что создает некоторую путаницу для пользователя, поскольку на самом деле это не действие.

Нормальное состояние:

[Add Property]

Выпадающее состояние:

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

Поэтому я хочу скрыть первый вариант, как только выпадающий список выпадет, чтобы добиться такого поведения:

[Add Property]
Length
Width
etc ...

Я уже пробовал с помощью создания подклассов комбобокса и перезаписи showPopUp () и hidePopUp () — но я не мог понять, как получить предполагаемое поведение.

Идеи? Спасибо!

0

Решение

Если вам не совсем нужен QComboBox вам может быть лучше / легче с помощью QToolButton с QMenu связано, а затем установить кнопку popupMode до соответствующей стоимости.

Вы можете даже использовать QToolBar, Просто добавьте QAction с желаемым ярлыком (например, Добавить недвижимость), свяжите с ним меню через QAction::setMenu и у него до панели инструментов. Панель инструментов сама создаст кнопки инструментов.

Чтобы получить доступ к popupMode собственность, которую вы можете использовать QToolBar::widgetForAction и бросить его в QToolButton,

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]