sábado, 3 de enero de 2009

Personalizar tus ventanas en Qt::Ventanas sin marcos (con movilidad en el escritorio)

En el ejemplo anterior Personalizar tus ventanas en Qt::Ventanas sin marcos se logroó que la ventana se comportara como se queria; sin los marcos por defecto del sistema.

Ahora este nuevo ejemplo, basado en el anterior, trae unas nuevas características para el manejo de nuestra ventana sin marcos.

Si bien ya tenemos nuestra ventana sin marcos, no podemos moverla por nuestro escritorio, cosa que por demás desagrada, si tomamos en cuenta que queremos cambiarla de posición.

Pues aquí, está la solución, solo tenemos que adicionar estas lineas de código en nuestro ejemplo anterior.

Archivo cabecera

protected:
  void mouseMoveEvent(QMouseEvent *event);
  void mousePressEvent(QMouseEvent *event);
 
  private:
  QPoint dragPosition;


Archivo CPP

void SinMarco::mousePressEvent(QMouseEvent *event) {//PARA MOVER LA APLICACION POR EL ESCRITORIO
  if (event->button() == Qt::LeftButton) {
  dragPosition = event->globalPos() - frameGeometry().topLeft();
  event->accept();
  }
}

void SinMarco::mouseMoveEvent(QMouseEvent *event) {
  if (event->buttons() & Qt::LeftButton) {
  move(event->globalPos() - dragPosition);
  event->accept();
  }
}

No hay comentarios: