2011-04-01 34 views
6

Tengo una ventana marcada Qt::Popup (que no tiene una barra de título y botones de etc. cercanos) y me gustaría mover arrastrando \ haciendo clic en el área de la barra sin título ....Qt 4: mover ventana sin barra de título

En Win32, la solución podría ser WM_NCLBUTTONDOWN pero mi requisito es crossplatform.

Respuesta

14

Prueba esto para mover la ventana manualmente:

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); 
    } 
} 

Y declarar QPoint mpos en alguna parte.

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

esta condición se cumple para todos los botones del ratón

tal vez usted tener presente esta

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