crossplatform.ru

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

> Перемещение окна за любую его часть
breeve
  опции профиля:
сообщение 17.5.2010, 9:35
Сообщение #1


Участник
**

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

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




Репутация:   1  


Сабж. Есть popup окно и нужно сделать чтобы его можно было двигать. Не могу найти..

Сообщение отредактировал breeve - 17.5.2010, 9:36
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
 
Начать новую тему
Ответов
breeve
  опции профиля:
сообщение 17.5.2010, 13:14
Сообщение #2


Участник
**

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

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




Репутация:   1  


Вот если кому надо, рабочий вариант:
void Console::mousePressEvent(QMouseEvent *event)
{
    QRect p = this->geometry();
    if(event->button() == Qt::LeftButton)
    {
        lastPoint = event->pos();        
        if(!p.contains(lastPoint))
            return;
        b_move = true;
    }
}

void Console::mouseMoveEvent(QMouseEvent *event)
{
    if((event->buttons() & Qt::LeftButton) && b_move)
        move(event->globalX()-lastPoint.x(),
             event->globalY()-lastPoint.y());
}

void Console::mouseReleaseEvent(QMouseEvent *event)
{
    if (event->button() == Qt::LeftButton && b_move) {
            b_move = false;
        }
}


Остался один не понятный момент. Если у меня окно стоит с флагом Qt::Window. То все работает правильно. Если же я выставляю Qt::ToolTip или Qt::Popup, то если я хоть раз нажму на другое окно то я больше не смогу его сдвинуть. Не понятно почему.

Сообщение отредактировал breeve - 17.5.2010, 13:12
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Сообщений в этой теме


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


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




RSS Текстовая версия Сейчас: 23.11.2024, 0:25