elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Guía rápida para descarga de herramientas gratuitas de seguridad y desinfección


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  [Qt] Creación en horizontal por layouts?
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: [Qt] Creación en horizontal por layouts?  (Leído 2,743 veces)
Puntoinfinito


Desconectado Desconectado

Mensajes: 919


#! /win/archlinux


Ver Perfil WWW
[Qt] Creación en horizontal por layouts?
« en: 18 Marzo 2013, 19:48 pm »

Hola!! Tengo una preguntilla sobre Qt, antes de todo dejaré un código para ejemplificar el problema: (Pero ya os digo, fijaros solo en el segundo y tercer código)

Código
  1.    #include <QApplication>
  2.    #include <QHBoxLayout>
  3.    #include <QVBoxLayout>
  4.    #include <QLabel>
  5.    #include <QLineEdit>
  6.    #include <QPushButton>
  7.    #include <QDialog>
  8.  
  9.    int main(int argc, char *argv[])
  10.    {
  11.    QApplication app(argc, argv);
  12.  
  13.    QDialog ventana;
  14.    QHBoxLayout *layoutUsuario = new QHBoxLayout;
  15.    QHBoxLayout *layoutContrasenia = new QHBoxLayout;
  16.    QHBoxLayout *layoutBotones = new QHBoxLayout;
  17.    QVBoxLayout *layoutPrincipal = new QVBoxLayout(&ventana);
  18.  
  19.    QLabel *etiquetaUsuario = new QLabel("Usuario");
  20.    QLabel *etiquetaContrasenia = new QLabel("Password");
  21.  
  22.    QLineEdit *campoUsuario = new QLineEdit;
  23.    QLineEdit *campoContrasenia = new QLineEdit;
  24.  
  25.    QPushButton *botonAceptar = new QPushButton("Aceptar");
  26.    QPushButton *botonCancelar = new QPushButton("Cancelar");
  27.  
  28.    layoutUsuario->addWidget(etiquetaUsuario);
  29.    layoutUsuario->addWidget(campoUsuario);
  30.  
  31.    layoutContrasenia->addWidget(etiquetaContrasenia);
  32.    layoutContrasenia->addWidget(campoContrasenia);
  33.  
  34.    layoutBotones->addStretch();
  35.    layoutBotones->addWidget(botonAceptar);
  36.    layoutBotones->addWidget(botonCancelar);
  37.  
  38.    layoutPrincipal->addLayout(layoutUsuario);
  39.    layoutPrincipal->addLayout(layoutContrasenia);
  40.    layoutPrincipal->addLayout(layoutBotones);
  41.  
  42.    ventana.setWindowTitle(QObject::trUtf8("Iniciar Sesión"));
  43.    ventana.show();
  44.  
  45.    return app.exec();
  46.    }

Genera algo tal que así:



Mi duda es la siguiente; no entiendo bien bien el funcionamiento de este código ya que lo que hace es crear una tabla de 3x3 donde en el primero hay un label con un textbox, el segundo lo mismo y el tercero dos botones. Pero quedan ordenadas de manera que no he definido bien bien, según lo que puedo leer, creo que lo ordena por layouts, cada layout es una nueva linea que tu le iras atribuyendo objectos de cualquier tipo:

Código
  1. QHBoxLayout *layoutUsuario = new QHBoxLayout;
  2. QHBoxLayout *layoutContrasenia = new QHBoxLayout;
  3. QHBoxLayout *layoutBotones = new QHBoxLayout;

Y luego como he dicho le atribuyo:

Código
  1. layoutUsuario->addWidget(etiquetaUsuario);
  2. layoutUsuario->addWidget(campoUsuario);
  3.  
  4. layoutContrasenia->addWidget(etiquetaContrasenia);
  5. layoutContrasenia->addWidget(campoContrasenia);
  6.  
  7. layoutBotones->addStretch();
  8. layoutBotones->addWidget(botonAceptar);
  9. layoutBotones->addWidget(botonCancelar);

Entonces lo digo bien o no? xD es cierto que se ordena mediante los layouts? Es algo que en este ejemplo no me ha quedado muy claro ya que estaba acostumbrado a hacerlo de manera tabuladora...

Código:
layout->addWidget(boton1, 0, 0);
layout->addWidget(boton2, 1, 1);
layout->addWidget(boton3, 3, 3);

...que es como creo que es como queda mejor xD

Saludos!!


« Última modificación: 18 Marzo 2013, 22:10 pm por Puntoinfinito » En línea

AHORA EN SOFTONIC || CLICK HERE!!
Base64: QWNhYmFzIGRlIHBlcmRlciAxIG1pbnV0byBkZSB0dSB2aWRhLiBPbOkh



HACK AND 1337 : http://hackandleet.blogspot.com
WEBSITE: http://www.infiniterware.
avesudra


Desconectado Desconectado

Mensajes: 724


Intentando ser mejor cada día :)


Ver Perfil
Re: [Qt] Creación en horizontal automatizada?
« Respuesta #1 en: 18 Marzo 2013, 22:00 pm »

Sí es exactamente como dices, en ese programa está ordenado así:

En los layouts horizontales, los widget se van añadiendo uno al lado del otro, y en los verticales en una pila, por eso sale como sale. Fíjate que el layout principal es un layout vertical no horizontal. Es sencillo de entender.

¡Un saludo!


« Última modificación: 18 Marzo 2013, 22:02 pm por avesudra » En línea

Regístrate en
Puntoinfinito


Desconectado Desconectado

Mensajes: 919


#! /win/archlinux


Ver Perfil WWW
Re: [Qt] Creación en horizontal automatizada?
« Respuesta #2 en: 18 Marzo 2013, 22:09 pm »

Ahhhh!! Ahora pillo lo de;

Código:
QHBoxLayout
QVBoxLayout

Ya lo entiendo!! Gracias!! :)

Pero una pregunta, y si lo que quiero hacer es hacer un hueco entre layout y layout, creo uno sin contenido y luego lo añado al principal entre los dos que quiero separar??

Saludos!!
En línea

AHORA EN SOFTONIC || CLICK HERE!!
Base64: QWNhYmFzIGRlIHBlcmRlciAxIG1pbnV0byBkZSB0dSB2aWRhLiBPbOkh



HACK AND 1337 : http://hackandleet.blogspot.com
WEBSITE: http://www.infiniterware.
avesudra


Desconectado Desconectado

Mensajes: 724


Intentando ser mejor cada día :)


Ver Perfil
Re: [Qt] Creación en horizontal por layouts?
« Respuesta #3 en: 18 Marzo 2013, 22:20 pm »

Me alegro de que lo entiendas, para hacer un hueco debes hacer un layout entre dos layouts y ponerle este "widget"(QSpacerItem) http://qt-project.org/doc/qt-4.8/qspaceritem.html .Es un espacio, que puede ser vertical o horizontal y del tamaño que quieras.Si no le pones nada será un layout vacío tamaño 0 supongo...

¡Un saludo!
En línea

Regístrate en
Puntoinfinito


Desconectado Desconectado

Mensajes: 919


#! /win/archlinux


Ver Perfil WWW
Re: [Qt] Creación en horizontal por layouts?
« Respuesta #4 en: 18 Marzo 2013, 22:26 pm »

Entendido, gracias de nuevo, si vuelvo a tener una duda de Qt no dudaré en preguntártelo xD

Saludos avesudra  :D
En línea

AHORA EN SOFTONIC || CLICK HERE!!
Base64: QWNhYmFzIGRlIHBlcmRlciAxIG1pbnV0byBkZSB0dSB2aWRhLiBPbOkh



HACK AND 1337 : http://hackandleet.blogspot.com
WEBSITE: http://www.infiniterware.
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Web Layouts y Web Logos [criticas constructivas para todos]
Diseño Gráfico
+ enrique ZP 5 2,487 Último mensaje 22 Julio 2005, 13:41 pm
por + enrique ZP
Photoshop: Como recuperar los recuadros de layouts......
Diseño Gráfico
NeRoFiLo 2 1,807 Último mensaje 31 Diciembre 2005, 17:16 pm
por MinusFour
JTable y Layouts
Java
Kerber0 3 5,900 Último mensaje 16 Octubre 2009, 09:46 am
por Kerber0
¿layouts en php?
PHP
Clavo Oxidado 8 3,082 Último mensaje 29 Junio 2010, 12:08 pm
por Falso Positivo
Duda sobre Layouts
Java
Drewermerc 8 4,628 Último mensaje 29 Noviembre 2014, 20:12 pm
por Drewermerc
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines