Здравствуйте, гость ( Вход | Регистрация )
wiz29 | Дата 6.10.2010, 10:47 |
нашел решение, обрабатывая QEvent::WindowDeactivate получается нужный эффект. Кликая мышью "мимо" виджета как раз и приходит данное событие. |
|
wiz29 | Дата 6.10.2010, 9:40 |
я щас и эксперементирую, как решу отпишусь | |
Алексей1153 | Дата 6.10.2010, 9:39 |
эхъ, в общем без экспериментов трудно что-то говорить, а провести их сейчас немного некогда... | |
wiz29 | Дата 6.10.2010, 9:20 |
Мне бы хотелось скрывать по клику "мимо" виджета. Мне не понятно по чему при вызове show() виджет появляется, но фокуса на нем нет, даже если он applicationModal Тем более таймер, как мне кажется, не оч удачная идея, если виджет может быть скрыт / открыт несколькими способами |
|
Алексей1153 | Дата 5.10.2010, 13:51 |
по таймеру при зажжённом виджете проверять, где сейчас находится курсор. Раз в полсекунды будет достаточно | |
wiz29 | Дата 5.10.2010, 13:06 |
не совсем уловил мысль, зачем таймер? | |
Алексей1153 | Дата 5.10.2010, 13:03 |
wiz29, я подправил пост. Там ещё нужно добавить проверку - что главное окно не в фокусе + виджет не в фокусе | |
wiz29 | Дата 5.10.2010, 13:02 |
Не QMenu мне не подходит, тк при кликах вне элементов виджета меню он скрывается. Естьли какойто евент который грубо говоря генерится при изменении позиции виджета в стеке виджетов? leaveEvent не подойдет, мне нужно скрывать именно при клике вне виджета. Если клика нет скрывать не нужно |
|
Алексей1153 | Дата 5.10.2010, 13:00 |
це QMenu или даже любой QWidget с отслеживанием leaveEvent . Если курсор не на фиджете и фокуса нет (проверять по таймеру, к примеру), то скрываем хм, даже leaveEvent не надо - таймера достаточно |
|
wiz29 | Дата 5.10.2010, 12:50 |
Добрый день. Подскажите как сделать. Нужна следующая функциональность виджета: show->открывается поверх всех дочерних окон главного окна, при клике мышкой вне этого виджета нужно его скрыть (т.е. сделать его invisible). как лучше сделать?(через фокус евент не прокатывает) |
|
Просмотр темы полностью (откроется в новом окне) | |
Текстовая версия | Сейчас: 29.3.2024, 16:57 |