Название: Статичный текст заголовка (поле со стрелкой) QComboBox Отправлено: Alexander_57 от Сентябрь 03, 2011, 18:17 Добрый вечер!
Скажите пожалуйста можно ли сделать текст в заголовке (поле со стрелкой) у QComboBox-a статичным и неизменным при выборе элемента из списка? Я создал QComboBox в который в качестве модели установил QStandardItemModel, а в качестве представления - QTreeView. Элементы в структуре имеют переключатели (Checkable). Так вот созданные мною виджет представляет собой выпадающее окно, в котором выбираются регионы проживания. Поэтому в заголовке кнопки ничего не должно показываться, кроме статического текста "Выбор региона". Название: Re: Статичный текст заголовка (поле со стрелкой) QComboBox Отправлено: NicK от Сентябрь 05, 2011, 10:30 почему бы просто не поместить combobox на frame с нужным заголовком? :)
Название: Re: Статичный текст заголовка (поле со стрелкой) QComboBox Отправлено: Alexander_57 от Сентябрь 05, 2011, 14:10 Как это?
Суть создаваемого виджета: нажимаем на кнопку QComboBox, выбираем необходимые регионы. Вариант использования: 1. Разворачиваем QComboBox. 2. Выбираем (устанавливаем галочки) города Москва, Санкт-Петербург, Новосибирск. 3. Закрываем QComboBox. В заголовке стоит Новосибирск (так как он выбирался последним). ТАК БЫТЬ НЕ ДОЛЖНО :-[ Название: Re: Статичный текст заголовка (поле со стрелкой) QComboBox Отправлено: LisandreL от Сентябрь 05, 2011, 14:23 ТАК БЫТЬ НЕ ДОЛЖНО :-[ Так как вы описали тоже быть не должно.Если я пользуюсь программой выбираю пункты, а в итоге так и останется "Выбор региона", я решу, что ничего не выбралось. В идеале (на мой взгляд) отображаемое значение QComboBox-a должно стать «Москва, Санкт-Петербург, Новосибирск». Реализацию не подскажу, извините. Название: Re: Статичный текст заголовка (поле со стрелкой) QComboBox Отправлено: Alexander_57 от Сентябрь 05, 2011, 15:09 После выбора регионов их список появляется под QComboBox-м. В заголовке их перечислять нельзя (если пользователь выберет большое количество регионов, то их надписи не поместятся в заголовке).
Во вложениях скриншоты того, что я бы хотел создать. Название: Re: Статичный текст заголовка (поле со стрелкой) QComboBox Отправлено: _OLEGator_ от Сентябрь 06, 2011, 11:07 Делайте обычной кнопкой, по нажатии на которую показывайте вьюху дерева popup-окном.
Название: Re: Статичный текст заголовка (поле со стрелкой) QComboBox Отправлено: Kolobok от Сентябрь 06, 2011, 12:32 Наследуйся от QComboBox и переопредели initStyleOption(...).
Название: Re: Статичный текст заголовка (поле со стрелкой) QComboBox Отправлено: Alexander_57 от Сентябрь 06, 2011, 15:56 _OLEGator_ и Kolobok большущее спасибо. Оба варианта верные.
Вот как я сделал. Переопределил paintEvent в QComboBox-е. // Переопределение стандартного метода (перерисовка элемента) void paintEvent(QPaintEvent *a_pPaintEvent) { QStylePainter StylePainter(this); QStyleOptionComboBox StyleOptionComboBox; initStyleOption(&StyleOptionComboBox); StylePainter.drawComplexControl(QStyle::CC_ComboBox, StyleOptionComboBox); StyleOptionComboBox.currentText = "Выбор регионов"; StylePainter.drawControl(QStyle::CE_ComboBoxLabel, StyleOptionComboBox); } Название: Re: Статичный текст заголовка (поле со стрелкой) QComboBox Отправлено: Kolobok от Сентябрь 07, 2011, 12:04 Правильнее переопределить initStyleOption. А так sizeHint может неправильно работать.
|