Qt 4: переместить окно без строки заголовка - PullRequest
6 голосов
/ 01 апреля 2011

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

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

Ответы [ 2 ]

17 голосов
/ 01 апреля 2011

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

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 где-нибудь.

5 голосов
/ 31 августа 2011
if (event->buttons() && Qt::LeftButton) {

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

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

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