crossplatform.ru

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

2 страниц V   1 2 >  
Ответить в данную темуНачать новую тему
> Получение сигнала о перемещении окна, во время перемещения
RazrFalcon
  опции профиля:
сообщение 16.7.2013, 2:38
Сообщение #1


Zombie Mod
*****

Группа: Участник
Сообщений: 1654
Регистрация: 24.5.2010
Из: Харьков
Пользователь №: 1752

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




Репутация:   212  


Нужно получать координаты окна ПОКА я его перемещаю, а не когда уже переместил, что можно узнать из moveEvent.

Вопрос как это реализовать?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Snake174
  опции профиля:
сообщение 16.7.2013, 4:39
Сообщение #2


Студент
*

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

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




Репутация:   0  


void MainWindow::moveEvent( QMoveEvent *e )
{
  qDebug() << e->pos();
  QMainWindow::moveEvent(e);
}
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
RazrFalcon
  опции профиля:
сообщение 16.7.2013, 12:56
Сообщение #3


Zombie Mod
*****

Группа: Участник
Сообщений: 1654
Регистрация: 24.5.2010
Из: Харьков
Пользователь №: 1752

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




Репутация:   212  


Я же написал что ПОКА перемещаю, а не когда уже переместил.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Trisch
  опции профиля:
сообщение 16.7.2013, 16:09
Сообщение #4


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

Группа: Участник
Сообщений: 379
Регистрация: 30.1.2012
Из: Запорожье
Пользователь №: 3169

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




Репутация:   0  


Можно получить координаты окна до перемещения.
Потом отследить с помощью mouseMoveEvent() изменение координаты мыши.
Ну и произвести определенные расчеты
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
ilyabvt
  опции профиля:
сообщение 16.7.2013, 17:06
Сообщение #5


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

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

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




Репутация:   3  


Можно написать свою реализацию перемещения окна (заменить стандартную рамку на свою и переопределить mouseMoveEvent), тогда координаты можно получать во время перемещения.
P.S. Еще может быть можно через nativeEvent, но это для каждой платформы свой код придеться писать.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
RazrFalcon
  опции профиля:
сообщение 16.7.2013, 18:13
Сообщение #6


Zombie Mod
*****

Группа: Участник
Сообщений: 1654
Регистрация: 24.5.2010
Из: Харьков
Пользователь №: 1752

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




Репутация:   212  


Да. О своей рамке думал, но это как-то не труЪ. Хотелось бы оставить нативную.

С x11Event() пока вообще никаких успехов. Он банально не компилируются... в инете инфы о нем мало.
До winEvent() руки еще не дошли.

Если кто-то перехватывал с помощью них какие-либо события - с удовольствием гляну код.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
ilyabvt
  опции профиля:
сообщение 16.7.2013, 19:58
Сообщение #7


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

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

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




Репутация:   3  


Что касается winEvent то вроде сообщение WM_MOVING генерируется во время перемещения.
Пример переопределения winEvent: http://qt-doc.ru/ispolzovanie-windows-api-v-qt.html
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Snake174
  опции профиля:
сообщение 17.7.2013, 6:42
Сообщение #8


Студент
*

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

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




Репутация:   0  


Цитата(RazrFalcon @ 16.7.2013, 13:56) *
Я же написал что ПОКА перемещаю, а не когда уже переместил.

Так ты вставь этот код и начни перемещать окно. В консоль будут координаты выводиться во время перемещения, а не после окончания.
void MainWindow::moveEvent( QMoveEvent *e )
{
  qDebug() << e->pos();
  QMainWindow::moveEvent(e);
}
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Алексей1153
  опции профиля:
сообщение 17.7.2013, 12:19
Сообщение #9


фрилансер
******

Группа: Участник
Сообщений: 2941
Регистрация: 19.6.2010
Из: Обливион
Пользователь №: 1822

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




Репутация:   34  


Snake174, всё так, только

qDebug() << /*e->*/pos();
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
RazrFalcon
  опции профиля:
сообщение 17.7.2013, 14:17
Сообщение #10


Zombie Mod
*****

Группа: Участник
Сообщений: 1654
Регистрация: 24.5.2010
Из: Харьков
Пользователь №: 1752

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




Репутация:   212  


На винде - да. На лине и маке - нет.

Сообщение отредактировал RazrFalcon - 17.7.2013, 14:26
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

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


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




RSS Текстовая версия Сейчас: 24.11.2024, 5:26