Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: QMainWindow
Форум на CrossPlatform.RU > Библиотеки > Qt > Qt GUI
gpepsi
у в tray висит иконка. при двойном щелчке открывается форма.
Нужно отрисовать ее в правом нижнем углу экрана и запретить перетаскивание.

Можно ли это указать форме флагами или нужно отлавливать события перемещения и и отрисовывать самому в конкретном месте ?
ilyabvt
В правый нижний угол перемещать вручную через setGeometry. Запретить перемещение можно убрав рамку (указать соответствующий флаг), если рамка обязательна то переопределять moveEvent.
gpepsi
Цитата(ilyabvt @ 13.9.2011, 18:09) *
В правый нижний угол перемещать вручную через setGeometry

это получилось

Цитата(ilyabvt @ 13.9.2011, 18:09) *
апретить перемещение можно убрав рамку (указать соответствующий флаг),

не хотел

Цитата(ilyabvt @ 13.9.2011, 18:09) *
если рамка обязательна то переопределять moveEvent.

выставляю в moveEvent setGeometry(event->oldPos) и ухожу в рекурсию :)
ssoft
Цитата(gpepsi @ 14.9.2011, 8:30) *
выставляю в moveEvent setGeometry(event->oldPos) и ухожу в рекурсию :)


Все правильно
Цитата
Warning: Calling setGeometry() inside resizeEvent() or moveEvent() can lead to infinite recursion.


Можно попробовать установить виджету атрибут
setAttribute( Qt::WA_Moved, false );

gpepsi
Цитата(ssoft @ 14.9.2011, 14:03) *
Можно попробовать установить виджету атрибут

не помогло
ilyabvt
Цитата
выставляю в moveEvent setGeometry(event->oldPos) и ухожу в рекурсию

Конечно уходите, т.к. при возврате в старую позицию у вас вызывается событие moveEvent которое имеет уже другую старую позицию.
Попробуйте через setGeometry передавать конкретные числа (ну где у вас там угол экрана).
Litkevich Yuriy
gpepsi, прочитай своё первое сообщение и объясни мне, почему тема называется "QMainWindow"
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Форум IP.Board © 2001-2022 IPS, Inc.