sábado, 3 de enero de 2009

Personalizar tus ventanas en Qt::Ventanas sin marcos (con formas personalizadas)

Ya vistos los ejemplos anteriores, ahora se tiene que la forma de la aplicación no es la deseada. Como en el ejemplo Personalizar tus ventanas en Qt::Ventanas sin marcos (con movilidad en el escritorio) solo que se tiene que añadir estas lineas de código.

Eso se puede resolver de la siguiente manera.

Si bien se puede modificar el método

QSize sizeHint() const;//DEFINE EL TAMAÑO INICIAL DE LA VENTANA

del primer ejemplo, eso no nos permitira darle la forma real que queremos.

En cambio lo haremos con un nuevo metodo que vamos a reescribir.

Archivo cabecera

void resizeEvent(QResizeEvent *event);// DEFINE EL ESPACIO VISIBLE DE LA APLICACION, EN ESTE CASO LA ELIPSE

Archivo CPP

void SinMarco::resizeEvent(QResizeEvent * /* event */) {// DEFINE EL ESPACIO VISIBLE DE LA APLICACION, EN ESTE CASO UNA ELIPSE
  // USAR SOLO UNO DE LAS DOS FORMAS
  //QRegion maskedRegion(10, 10, 1000, 130, QRegion::Rectangle);
  QRegion maskedRegion(10, 10, 1000, 130, QRegion::Elipse); // EL CENTRO DE ESTA ELIPSE ES (10+1000)/2 Y (10+130)/2
  setMask(maskedRegion);
}


Tambien para este ejemplo se puede usar poligonos.

Y así ya tenemos una ventana diferente a las ventanas cuadradas aburridas : ).

No hay comentarios: