Qt 4: переместить окно без строки заголовка

У меня есть Qt::Popup помеченное окно (в котором нет строки заголовка, кнопок закрытия и т. д.), которое необходимо переместить, перетаскивая \ щелкая область без заголовка....

На Win32 решение может быть WM_NCLBUTTONDOWN, но мое требование кроссплатформенное.

2 ответа

Решение

Попробуйте это, чтобы переместить окно вручную:

void PopupWindow::mousePressEvent(QMouseEvent *event){
    mpos = event->pos();
}

void PopupWindow::mouseMoveEvent(QMouseEvent *event){
    if (event->buttons() & Qt::LeftButton) {
        QPoint diff = event->pos() - mpos;
        QPoint newpos = this->pos() + diff;

        this->move(newpos);
    }
}

И объявить QPoint mpos где-то.

if (event->buttons() && Qt::LeftButton) {

это условие верно для каждой кнопки мыши

может быть, вы помните об этом

if (event->buttons() & Qt::LeftButton) {
Другие вопросы по тегам