crossplatform.ru

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

 
Ответить в данную темуНачать новую тему
> [OpenGL] Перетащить точку
yuramuv
  опции профиля:
сообщение 14.12.2011, 8:38
Сообщение #1


Новичок


Группа: Новичок
Сообщений: 8
Регистрация: 12.9.2011
Пользователь №: 2864

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




Репутация:   0  


Нужно сделать так, чтоб можно было перетащить точку мышкой.
Сделал виджет, унаследованы от OpenGl, переопределил метод mouseMoveEvent
void GL_wgt:: mouseMoveEvent(QMouseEvent *ev)
    {
        if (ev->button()==Qt::LeftButton)
            {
                StartPos=ev->pos();
                _x=ev->x();_y=-ev->y();
                //PX,PY -координаты точки
                if ((_x-PX)<TOCH && (_y-PY)<TOCH)//попал ли курсор в область около точки, TOCH - 3 пикселя
                    {
                        qDebug()<<"Popav"<<StartPos;
                    }
    }

Вопрос: а как узнать, на какое расстояние курсор подвинулся?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
ilyabvt
  опции профиля:
сообщение 14.12.2011, 9:30
Сообщение #2


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

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

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




Репутация:   3  


Сохранять координаты в отдельных переменных. И при каждом событии высчитывать разность координат (новых которые можно узнать через объект QMouseEvent и старых которые сохранены в переменных).
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Алексей1153
  опции профиля:
сообщение 14.12.2011, 10:21
Сообщение #3


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

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

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




Репутация:   34  


Цитата(yuramuv @ 14.12.2011, 11:38) *
 [OpenGL] Перетащить почку


готишно :lol:
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
yuramuv
  опции профиля:
сообщение 14.12.2011, 20:04
Сообщение #4


Новичок


Группа: Новичок
Сообщений: 8
Регистрация: 12.9.2011
Пользователь №: 2864

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




Репутация:   0  


Цитата(ilyabvt @ 14.12.2011, 10:30) *
Сохранять координаты в отдельных переменных. И при каждом событии высчитывать разность координат (новых которые можно узнать через объект QMouseEvent и старых которые сохранены в переменных).

Спасибо. Думал реализовать нужно будет на QDrag, потому что не знал какое событие происходит при опускании кнопки мыши. (mouseReleaseEvent если нужно)
flag isClicked=false;//в .h файле, =false - в конструкторе
int PoxX_old,PosY_old;//в .h файле
void GL_wgt:: mouseMoveEvent(QMouseEvent *ev)
{
if (ev->button()==Qt::LeftButton)//если нажали левую (для правши) кнопку мыши
{
isClicked=true;
//проверка попадание
{/*если попадание, пересунуть точку, обновить виджет*/}
}

}

void GL_wgt::mouseReleaseEvent(QMouseEvent *)//если отпустили кнопку мыши
{
isClicked=false;
}





Цитата(Алексей1153 @ 14.12.2011, 11:21) *
Цитата(yuramuv @ 14.12.2011, 11:38) *
 [OpenGL] Перетащить почку


готишно :lol:


Просьба к модераторам: перейменуйте в [OpenGL] Перетащить Точку.

Сонный был, не заметил)
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

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


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




RSS Текстовая версия Сейчас: 29.5.2024, 4:17