Help > Install New Software> Add>
lunes, 21 de marzo de 2011
Editor visual para eclipse
Help > Install New Software> Add>
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 : ).
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();
}
}
Personalizar tus ventanas en Qt::Ventanas sin marcos
En mi pasar por la programación con Qt, he ido realizando algunas modificaciones a los componentes básicos para darle un aspecto diferente a mis aplicaciones.
Hoy les quiero mostrar parte de esas cosas que he hecho.
Ahora bien lo más importante... el código.
Archivo Cabecera
#ifndef SINMARCO_H
#define SINMARCO_H
#include
class SinMarco : public QWidget {
Q_OBJECT
public:
SinMarco(QWidget *parent = 0);//CONSTRUCTOR, DEFINE QUE LA VENTANA SERA SIN MARCOS
QSize sizeHint() const;//DEFINE EL TAMAÑO INICIAL DE LA VENTANA ESTA LINEA DE CODIGO ES OPCIONAL
};
#endif
Archivo CPP
#include "sinmarco.h"
SinMarco::SinMarco(QWidget *parent) : QWidget(parent, Qt::FramelessWindowHint) { //DEFINE QUE LA VENTANA SERA SIN MARCOS
// LA BANDERA Qt::FramelessWindowHint EN EL CONSTRUCTOR QWidget
// ES LO UNICO QUE NECESITAMOS PARA HACER QUE NUESTRA APLICACIÓN NO POSEA EL MARCO DE VENTANAS (NI DEL SISTEMA NI DEL LENGUAJE)
}
QSize SinMarco::sizeHint() const {//DEFINE EL TAMAÑO INICIAL DE LA VENTANA OPCIONAL
return QSize(1000, 130);
// ESTOS VALORES PUEDEN SER MODIFICADOS A NUESTRO GUSTO
}
Archivo MAIN
#include
#include "sinmarco.h"
int main(int argc, char *argv[]) {
QApplication app(argc, argv);
SinMarco Ventana_Sin_Marco;
Ventana_Sin_Marco.show();
return app.exec();
}
Y así hemos concluido nuestra ventana sin marcos.
martes, 16 de diciembre de 2008
Usando el framework Phonon en mi aplicación
Estoy haciendo una aplicación multimedia para KDE, para reproducir video, audio, podcast, radio y más, por tal razón me encuentro realizando algunas pruebas al marco de trabajo phonon, por lo que he compilado el ejemplo musicplayer de qt4.
WARNING: bool Phonon::FactoryPrivate::createBackend() phonon backend plugin could not be loaded
WARNING: bool Phonon::FactoryPrivate::createBackend() phonon backend plugin could not be loaded
WARNING: bool Phonon::FactoryPrivate::createBackend() phonon backend plugin could not be loaded
WARNING: bool Phonon::FactoryPrivate::createBackend() phonon backend plugin could not be loaded
Phonon::createPath: Cannot connect Phonon::MediaObject(no objectName) to Phonon::AudioOutput(no objectName).
WARNING: bool Phonon::FactoryPrivate::createBackend() phonon backend plugin could not be loaded
Luego cuando cargo un archivo (mp3, wav u otro), me da la siguiente advertencia:
WARNING: bool Phonon::FactoryPrivate::createBackend() phonon backend plugin could not be loaded
Buscando un poco más detenidamente, con la sugerencia de algunos amigos, devele unas dudas que tenía.
Si bien es cierto que phonon viene con y para KDE4, y que en teoría solo trabaja para KDE4 por eso de que KDE3 y KDE4 son incompatibles (que no es del todo cierto, pues tengo algunos modulos de KDE4 instalados en mi KDE3 y hasta ahora no he tenido ningún problema), Qt4 trae consigo el framework PHONON.
De lo que me he dado cuenta es que mi problema se presento porque instalé el phonon de KDE4 y no el de Qt4, y cuando busca hacer los enlaces no consigue el plugin porque Qt4 no lo tiene.
El problema se resuelve con solo esta linea
ln -s /usr/lib/kde4/plugins/phonon_backend /usr/lib/qt/plugins
Pero tuve que modificarla por esta, pues por tener KDE3 me instala el qmake de Qt3 y como instale Qt4 ahora tengo los 2.
ln -s /usr/lib/kde4/plugins/phonon_backend /usr/lib/qt4/plugins
Ahora mi aplicación esta trabajando al jorno.
Más adelante iré publicando nuevas soluciones a errores que se me vayan presentando con el framework PHONON.