QT - Qt Jambi. ¿alguien?

 
Vista:

Qt Jambi. ¿alguien?

Publicado por Jose (2 intervenciones) el 04/02/2009 20:59:00
Hola, he estado mirando todo este foro pero solo he visto cosas de Qt (en c++) y yo tengo que utilizar "Qt Jambi" que es JAVA, para eclipse. Creo que no hay otro foro sobre qt en java.

Tengo esta duda:
Tengo varias ventanas cada una en su archivo .jui (grafico) . java (texto) (con sus botones, label...) y lo que quiero es que desde la primera pantalla, tener una widget o un frame donde puedan ir apareciendo esos archivos. Tipico menu que tienes a la izquierda, y segun donde pinches aparece a la derecha diferentes opciones, pero todo en la misma pantalla.

Ojala alguien controle de qt jambi y pueda ayudarme! gracias.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Qt Jambi. ¿alguien?

Publicado por Fernando (1 intervención) el 20/02/2009 22:00:35
Bueno yo no sé mucho pero aver si te puedo ayudar. (Curiosamente estaba buscando yo ayuda xDD).

Si he entendido bien lo que quieres es que al pulsar un botón de tu FormPrincipal por ejemplo te carge un widget incrustado en el FormPrincipal en vez de que la ventana surja hacia a fuera.

Los archivos .jui sirven exclusivamente para modificar el Form graficamente. El qt designer(incrustado en Eclipse) crea dos archivos .java automaticamente. Uno se crea(se machaca) cada vez que modificas el .jui entero (Suele tener el mismo nombre del form (.java)). Despues hay otro archivo que depende como hayas configurado qt en eclipse no sé como se llamará.

En mi caso se llama "nombreForm"Impl.java. Acabado en "Impl". Ahí se implementa todas las acciones del Form.

Si por ejemplo has creado dos forms.

Tenemos Form1.jui Form1.java Form1Impl.java y Form2.jui Form2.java Form2Impl.java.

Y quieres que al pinchar un botón en Form1 te surga Form2 pero incrustada.

public class Form1Impl extends QWidget {

Form1 ui = new Form1();

public static void main(String[] args) {
QApplication.initialize(args);

Form1Impl testForm1Impl = new Form1Impl();
testForm1Impl.show();

QApplication.exec();
}

public Form1Impl() {
ui.setupUi(this);
//Aquí dices que cuando pinches el botón "pushButton" ejecute la función pushButtonClick del objeto this.
ui.pushButton.clicked.connect(this, "pushButtonClick()");
}

public Form1Impl(QWidget parent) {
super(parent);
ui.setupUi(this);
}

private void pushButtonClick(){
//Creamos el Form2Impl
Form2Impl f = new Form2Impl(this);
//Lo mostramos
f.show();
}
}

Así de "fácil".
Un saludo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Qt Jambi. ¿alguien?

Publicado por jose (2 intervenciones) el 06/03/2009 20:58:30
Muchas gracias Fernando por la contestacion! Al final conseguí sacarlo antes de leer esto. Lo hacia como tu me has puesto, pero como queria que la nueva pantalla saliera solo en un widget (frame) particular, en el constructor le metia el widget ese en vez de "this"

Queria hacer otra pregunta a ver si tu o alguien me podria ayudar: EXPANDIR VENTANA

Yo creo mi aplicacion metiendole botones, cajas de texto, label... las colocas donde quieres y le pones un tamaño graficamente. Cuando arrancas la aplicacion siempre te sale con el tamaño que le hayas puesto, pero... cuando le doy al boton de la pantalla de "MAXIMIZAR" para ponerlo al tamaño de pantalla... queda todo igual al mismo tamaño alineado a la izquierda. ¿SABEIS COMO HACER PARA QUE SE MAXIMIZE TODO?

Estoy mirando y cambiando muchas propiedades de los objetos pero ninguna me lo hace. He mirado ejemplos de "doc/trolltech" y en cada ejemplo vienen todos los objetos creados directamente en código java, y en algunos si que se expanden. Pero claro, no usa la interfaz gráfica, crea los objetos en código!!!!!

(¿y de estos archivos .java de los ejemplos, se pude generar el archivo ".jui" de alguna forma?)

Gracias.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar