Russian Qt Forum

Qt => Пользовательский интерфейс (GUI) => Тема начата: admsasha от Июль 16, 2011, 17:38



Название: raise формы скрывает qcombobox
Отправлено: admsasha от Июль 16, 2011, 17:38
Есть форма на ней расположены qcombobox.

Выявился вот такой глюк. Когда делаю форме raise (по таймеру, либо по событию), то список qcombobox скрывается за формой. Что можно сделать ?

пробывал так:
this->raise();
combobox1->raise();

Не помогло.

---
QT 4.7.2
windows XP


Название: Re: raise формы скрывает qcombobox
Отправлено: admsasha от Июль 17, 2011, 06:54
Влаживаю компиляберный пример.

Под Linux (QT 4.7.1) такого глюка нет. А вот под windows есть...

Нужно запустить программу, нажать раскрыть список и подождать секунду. Эффект думаю, будет виден.


Название: Re: raise формы скрывает qcombobox
Отправлено: Авварон от Июль 17, 2011, 09:18
ну не рейзите форму, чо


Название: Re: raise формы скрывает qcombobox
Отправлено: admsasha от Июль 17, 2011, 09:38
ну не рейзите форму, чо
Хорошо, чем заменить его ? Нужно чтобы форма всегда была поверх других. Даже, если появляется окно с WindowStaysOnTopHint.


Название: Re: raise формы скрывает qcombobox
Отправлено: Авварон от Июль 17, 2011, 09:47
След вопрос - зачем? Во первых такие окна редкость. Во вторых юзер ожидает что ваше окно будет себя вести также как все остальные.
На самом деле моя претензия про рейз была к тому, что если у вас открыт комбобокс, то окно _заведомо_ уже рейзнутое (нельзя активировать мышкой контрол на форме не сделав ее активной) и его рейзить в этот момент не надо


Название: Re: raise формы скрывает qcombobox
Отправлено: admsasha от Июль 17, 2011, 10:04
След вопрос - зачем? Во первых такие окна редкость. Во вторых юзер ожидает что ваше окно будет себя вести также как все остальные.
На самом деле моя претензия про рейз была к тому, что если у вас открыт комбобокс, то окно _заведомо_ уже рейзнутое (нельзя активировать мышкой контрол на форме не сделав ее активной) и его рейзить в этот момент не надо
Юзер ничего не ожидает. Нужна программа для личного пользования. Есть офис где часто попадаются баннеры-вымогатели (там где за что-то отправить sms нужно). Не знаю где они ходят. Я хочу сделать программу которая поверх этого банера будет отображаться информация и в combobox предлагаться действия (снять баннер, игнорировать и т.д.). Тот баннер постоянно рейзиться. Если combobox заменить на кнопки, то всё хорошо работает. Но хочется именно combobox.

Чтобы снять сомнения, что я сам не пишу вирусы, зайдите на сайт: http://dansoft.krasnokamensk.ru не одной плохой программы вы не увидете.


Название: Re: raise формы скрывает qcombobox
Отправлено: Авварон от Июль 17, 2011, 10:08
Антивирус им поставьте лучше:)


Название: Re: raise формы скрывает qcombobox
Отправлено: admsasha от Июль 17, 2011, 10:11
Антивирус им поставьте лучше:)
Антивирус бесполезен. Стоит лицензионный и ежечасно обновляется. Но к моему вопросу это никакого отношения не имеет.


Название: Re: raise формы скрывает qcombobox
Отправлено: Гурман от Июль 17, 2011, 15:44
там не антивирус нужен, а дефендер типа COMODO, только грамотно настроенный - и вымогатели будут зарезаны на корню

кстати, и антивирус COMODO с его же фаерволом тоже стоит поставить, причем все это совершенно бесплатный софт


Название: Re: raise формы скрывает qcombobox
Отправлено: _OLEGator_ от Июль 19, 2011, 15:45
В твоем случае это должно помочь

Код
C++ (Qt)
combobox1->view()->parentWidget()->raise();