crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

 
Ответить в данную темуНачать новую тему
> QMainWindow
gpepsi
  опции профиля:
сообщение 13.9.2011, 16:25
Сообщение #1


Студент
*

Группа: Участник
Сообщений: 73
Регистрация: 31.3.2010
Пользователь №: 1582

Спасибо сказали: 0 раз(а)




Репутация:   0  


у в tray висит иконка. при двойном щелчке открывается форма.
Нужно отрисовать ее в правом нижнем углу экрана и запретить перетаскивание.

Можно ли это указать форме флагами или нужно отлавливать события перемещения и и отрисовывать самому в конкретном месте ?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
ilyabvt
  опции профиля:
сообщение 13.9.2011, 17:09
Сообщение #2


Активный участник
***

Группа: Участник
Сообщений: 297
Регистрация: 23.6.2011
Пользователь №: 2765

Спасибо сказали: 45 раз(а)




Репутация:   3  


В правый нижний угол перемещать вручную через setGeometry. Запретить перемещение можно убрав рамку (указать соответствующий флаг), если рамка обязательна то переопределять moveEvent.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
gpepsi
  опции профиля:
сообщение 14.9.2011, 7:30
Сообщение #3


Студент
*

Группа: Участник
Сообщений: 73
Регистрация: 31.3.2010
Пользователь №: 1582

Спасибо сказали: 0 раз(а)




Репутация:   0  


Цитата(ilyabvt @ 13.9.2011, 18:09) *
В правый нижний угол перемещать вручную через setGeometry

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

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

не хотел

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

выставляю в moveEvent setGeometry(event->oldPos) и ухожу в рекурсию :)

Сообщение отредактировал gpepsi - 14.9.2011, 7:31
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
ssoft
  опции профиля:
сообщение 14.9.2011, 13:03
Сообщение #4


Участник
**

Группа: Участник
Сообщений: 130
Регистрация: 17.2.2010
Из: Москва
Пользователь №: 1470

Спасибо сказали: 30 раз(а)




Репутация:   3  


Цитата(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
  опции профиля:
сообщение 14.9.2011, 13:18
Сообщение #5


Студент
*

Группа: Участник
Сообщений: 73
Регистрация: 31.3.2010
Пользователь №: 1582

Спасибо сказали: 0 раз(а)




Репутация:   0  


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

не помогло
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
ilyabvt
  опции профиля:
сообщение 14.9.2011, 14:38
Сообщение #6


Активный участник
***

Группа: Участник
Сообщений: 297
Регистрация: 23.6.2011
Пользователь №: 2765

Спасибо сказали: 45 раз(а)




Репутация:   3  


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

Конечно уходите, т.к. при возврате в старую позицию у вас вызывается событие moveEvent которое имеет уже другую старую позицию.
Попробуйте через setGeometry передавать конкретные числа (ну где у вас там угол экрана).
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 14.9.2011, 19:29
Сообщение #7


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9669
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

Спасибо сказали: 807 раз(а)




Репутация:   94  


gpepsi, прочитай своё первое сообщение и объясни мне, почему тема называется "QMainWindow"
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


3 чел. читают эту тему (гостей: 3, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 27.12.2024, 7:35