Qt en Español

Qt en Español es una comunidad de usuarios para aprender a Programar usando las librerias Qt

Buscar
 
 

Resultados por:
 


Rechercher Búsqueda avanzada

Últimos temas
» Desaparecen objetos del formulario al usar showMaximized()
Sáb Sep 13, 2014 9:54 pm por ljimenez29

» visivilidad de controles
Dom Mayo 18, 2014 5:04 pm por solitarywolf

» Error QT (y no sé que más poner ¬¬)
Jue Sep 26, 2013 4:02 pm por Anónimo

» QT, VTK en VS 2008 C++
Jue Abr 11, 2013 5:19 pm por monicadiaz

» [Ayuda]Programa en PyQt4 en modo Pantalla completa
Sáb Mar 30, 2013 8:56 pm por fortil

» SIGNAL y SLOT
Sáb Mar 02, 2013 5:11 pm por loloqt

» Qt creator 5.0.1 en Windows 8...."Qt creator needs a compiler set up to build. Configure a compiler in the kit options"
Miér Feb 27, 2013 4:23 pm por caliche

» mi aplicacion no me lee la base de datos
Jue Oct 18, 2012 1:55 pm por jldiaz

» QT.Para G19 de Logitech
Dom Oct 14, 2012 3:00 am por novax1

Navegación
 Portal
 Índice
 Miembros
 Perfil
 FAQ
 Buscar
Compañeros
Crear foro
Sondeo

Que nombre te gustaria que se llamara el foro?

27% 27% [ 6 ]
18% 18% [ 4 ]
0% 0% [ 0 ]
55% 55% [ 12 ]

Votos Totales : 22


No estás conectado. Conéctate o registrate

Widgets Tutorial (traduccion parcial)

Ver el tema anterior Ver el tema siguiente Ir abajo  Mensaje [Página 1 de 1.]

1 Widgets Tutorial (traduccion parcial) el Sáb Dic 19, 2009 1:09 am

Introducción

Los widgets son los bloques de construcción básicos de la interfaz gráfica de usuario (GUI) de las solicitudes presentadas con Qt. Cada componente de interfaz gráfica de usuario, como un botón, etiqueta o editor de texto, es un widget y puede ser colocado dentro de una interfaz de usuario existente o se muestra como una ventana independiente. Cada tipo de componente es proporcionada por una subclase particular de QWidget, que es en sí misma una subclase de QObject.

QWidget no es una clase abstracta, sino que puede ser utilizada como contenedor de otros widgets, y pueden ser una subclase con un mínimo esfuerzo para crear widgets personalizados. Esto a menudo es usado para crear ventanas en las que se colocan otros widgets.

Al igual que con QObject s, los widgets pueden ser creados con objetos de los padres para indicar la participación, garantizar que los objetos se eliminan cuando ya no se utilizan. Con los widgets, estas relaciones padre-hijo tiene un significado adicional: cada niño se muestra en el área de la pantalla ocupada por su padre. Esto significa que, cuando una ventana se elimina todos los widgets que contiene se eliminan automáticamente.

Escribir una función principal

Muchos de los ejemplos de Qt GUI en seguir el modelo de tener un archivo main.cpp contiene el código para inicializar la aplicación, y un número de otra fuente y los archivos de cabecera que contiene la lógica de la aplicación personalizada y los componentes GUI.

Una típica función main (), escrito en main.cpp, se parece a esto:

Código:
#include <QtGui>

 // Incluir archivos de cabecera para los componentes de aplicación.
 // ...

 int main(int argc, char *argv[])
 {
    QApplication app(argc, argv);

    // Configurar y mostrar los widgets.
    // ...

    return app.exec();
 }

En primer lugar, construir un objeto QApplication que se configura mediante cualquier argumentos pasados desde la línea de comandos. Después de los reproductores se han creado y se muestra, hacemos un llamamiento QApplication:: exec () para iniciar ciclo de eventos de Qt. El control pasa a Qt hasta que esta función devuelve, momento en que nos devuelva el valor que obtenemos de esta función.

En cada parte de este tutorial, le ofrecemos un ejemplo que está escrito enteramente dentro de una función main (). En los ejemplos más sofisticados, el código para crear widgets y diseños está escrito en otras partes del ejemplo. Por ejemplo, la interfaz gráfica de usuario de una ventana principal se puede establecer en el constructor de una subclase QMainWindow.

Los ejemplos Widgets son un buen lugar para buscar ejemplos más complejos y completos y aplicaciones.

Ejemplos de la Construcción y Tutoriales

Si usted obtiene un paquete binario de Qt o compilado usted mismo, los ejemplos descritos en este tutorial, ya debería estar listo para correr. Sin embargo, si puede que desee modificar y volver a compilar a ellos, debe realizar los siguientes pasos:

En la línea de comandos, escriba el directorio que contiene el ejemplo que usted desea volver a compilar.
Qmake Tipo y pulse Intro. Si esto no funciona, asegúrese de que el ejecutable está en su camino, o entrar en su lugar por completo.
En Linux / Unix y Mac OS X, el tipo de marca y pulse Intro; en Windows con Visual Studio, nmake tipo y pulse Intro.
Un archivo ejecutable que se han creado dentro del directorio actual. En Windows, este archivo puede estar situado dentro de un subdirectorio de depuración o de liberación. Puede ejecutar este archivo para ver el código de ejemplo en el trabajo.


Nota: Tutorial extraido de Doc-Trolltech



Última edición por Lycus HackerEmo el Sáb Dic 19, 2009 1:39 am, editado 3 veces

Ver perfil de usuario http://qt-espanol.forosactivos.net

2 Widgets Tutorial - Creating a Window el Sáb Dic 19, 2009 1:13 am

Si un widget es creado sin padre, es tratada como una ventana, o de arriba widget nivel, cuando se demuestra. Como no tiene objeto principal de garantizar que se elimina cuando ya no son necesarios, es responsabilidad del desarrollador para realizar un seguimiento de la parte superior-nivel de reproductores en una aplicación.

En el siguiente ejemplo, usamos QWidget para crear y mostrar una ventana con un tamaño por defecto:

Código:
#include <QtGui>

 int main(int argc, char *argv[])
 {
    QApplication app(argc, argv);
    QWidget window;
    window.resize(320, 240);
    window.show();
    window.setWindowTitle(
        QApplication::translate("toplevel", "Top-level widget"));
    return app.exec();
 }

Para crear una interfaz gráfica de usuario real, tenemos que hacer reproductores dentro de la ventana. Para hacer esto, pasamos una instancia de QWidget al constructor de un widget, como se demostrará en la siguiente parte de este tutorial.



Última edición por Lycus HackerEmo el Sáb Dic 19, 2009 1:29 am, editado 1 vez

Ver perfil de usuario http://qt-espanol.forosactivos.net

3 Widgets Tutorial - Child Widgets el Sáb Dic 19, 2009 1:18 am

Podemos añadir un widget hijo a la ventana creada en el ejemplo anterior, pasando la ventana como el padre de su constructor. En este caso, se añade un botón a la ventana y colocarlo en un lugar específico:

Código:
 #include <QtGui>

 int main(int argc, char *argv[])
 {
    QApplication app(argc, argv);
    QWidget window;
    window.resize(320, 240);
    window.setWindowTitle(QApplication::translate("childwidget", "Child widget"));
    window.show();

    QPushButton *button = new QPushButton(
        QApplication::translate("childwidget", "Press me"), &window);
    button->move(100, 100);
    button->show();
    return app.exec();
 }

El botón es ahora un niño de la ventana y se eliminará cuando se destruye la ventana. Tenga en cuenta que ocultar o cerrar la ventana no se destruyen automáticamente. Será destruida cuando las salidas de ejemplo.



Última edición por Lycus HackerEmo el Sáb Dic 19, 2009 1:28 am, editado 1 vez

Ver perfil de usuario http://qt-espanol.forosactivos.net

4 Widgets Tutorial - Using Layouts el Sáb Dic 19, 2009 1:21 am

Por lo general, los widgets están dispuestos niño dentro de una ventana con objetos de diseño en lugar de mediante la especificación de las posiciones y tamaños de forma explícita. Aquí, la construcción de una etiqueta y línea de edición widget que nos gustaría disponer de lado a lado.

Código:
 #include <QtGui>

 int main(int argc, char *argv[])
 {
    QApplication app(argc, argv);
    QWidget window;
    QLabel *label = new QLabel(QApplication::translate("windowlayout", "Name:"));
    QLineEdit *lineEdit = new QLineEdit();

    QHBoxLayout *layout = new QHBoxLayout();
    layout->addWidget(label);
    layout->addWidget(lineEdit);
    window.setLayout(layout);
    window.setWindowTitle(
        QApplication::translate("windowlayout", "Window layout"));
    window.show();
    return app.exec();
 }

La disposición objeto que gestiona la construcción de las posiciones y tamaños de los reproductores que se le suministra con la addWidget () la función. El diseño en sí es suministrado a la propia ventana en la llamada a setLayout (). Los diseños son accesibles solamente a través de los efectos que tienen en los reproductores (y otros esquemas) que son responsables de la gestión.

En el ejemplo anterior, la propiedad de cada widget no está inmediatamente claro. Dado que la construcción de los widgets y el diseño de objetos sin padres, es de esperar para ver una ventana vacía y dos ventanas separadas con una etiqueta y una línea de edición. Sin embargo, cuando le decimos a la disposición para administrar la etiqueta y la línea de edición y de establecer el diseño de la ventana, tanto los widgets y el diseño en sí son reparented''''de ser hijos de la ventana.



Última edición por Lycus HackerEmo el Sáb Dic 19, 2009 1:26 am, editado 1 vez

Ver perfil de usuario http://qt-espanol.forosactivos.net

5 Widgets Tutorial - Nested Layouts el Sáb Dic 19, 2009 1:25 am

Así como los widgets pueden contener otros widgets, diseños pueden ser utilizados para proporcionar diferentes niveles de agrupación para los widgets. Aquí, queremos mostrar una etiqueta junto a una línea de edición en la parte superior de una ventana, por encima de una vista de tabla que muestra los resultados de una consulta.

Esto lo conseguimos mediante la creación de dos diseños: queryLayout es un QHBoxLayout que contiene QLabel y reproductores QLineEdit colocados lado a lado; mainLayout es un QVBoxLayout que contiene queryLayout y QTableView dispuestas verticalmente.

Código:
#include <QtGui>

 int main(int argc, char *argv[])
 {
    QApplication app(argc, argv);
    QWidget window;

    QLabel *queryLabel = new QLabel(
        QApplication::translate("nestedlayouts", "Query:"));
    QLineEdit *queryEdit = new QLineEdit();
    QTableView *resultView = new QTableView();

    QHBoxLayout *queryLayout = new QHBoxLayout();
    queryLayout->addWidget(queryLabel);
    queryLayout->addWidget(queryEdit);

    QVBoxLayout *mainLayout = new QVBoxLayout();
    mainLayout->addLayout(queryLayout);
    mainLayout->addWidget(resultView);
    window.setLayout(mainLayout);

    // Set up the model and configure the view...
    window.setWindowTitle(
        QApplication::translate("nestedlayouts", "Nested layouts"));
    window.show();
    return app.exec();
 }

Tenga en cuenta que nosotros llamamos el mainLayout 's addLayout () la función de insertar el queryLayout encima de la mesa resultView.

Hemos omitido el código que establece el modelo que contiene los datos mostrados por el widget QTableView, resultView. Para completar, se muestra esta a continuación.

, Así como QHBoxLayout y QVBoxLayout, Qt también ofrece QGridLayout y clases QFormLayout para ayudar con interfaces de usuario más complejos. Estos se pueden ver si se ejecuta Qt Designer.

Configuración del Modelo

En el código anterior, no nos muestran que los datos de la tabla de vino porque queríamos concentrarnos en el uso de diseños. Aquí, vemos que el modelo tiene una serie de artículos correspondientes a las filas, cada uno de los cuales se configura para contener los datos de dos columnas.

Código:
    QStandardItemModel model;
    model.setHorizontalHeaderLabels(
        QStringList() << QApplication::translate("nestedlayouts", "Name")
                      << QApplication::translate("nestedlayouts", "Office"));

    QList<QStringList> rows = QList<QStringList>()
        << (QStringList() << "Verne Nilsen" << "123")
        << (QStringList() << "Carlos Tang" << "77")
        << (QStringList() << "Bronwyn Hawcroft" << "119")
        << (QStringList() << "Alessandro Hanssen" << "32")
        << (QStringList() << "Andrew John Bakken" << "54")
        << (QStringList() << "Vanessa Weatherley" << "85")
        << (QStringList() << "Rebecca Dickens" << "17")
        << (QStringList() << "David Bradley" << "42")
        << (QStringList() << "Knut Walters" << "25")
        << (QStringList() << "Andrea Jones" << "34");

    foreach (QStringList row, rows) {
        QList<QStandardItem *> items;
        foreach (QString text, row)
            items.append(new QStandardItem(text));
        model.appendRow(items);
    }

    resultView->setModel(&model);
    resultView->verticalHeader()->hide();
    resultView->horizontalHeader()->setStretchLastSection(true);

El uso de modelos y puntos de vista se trata en el artículo Ejemplos Vistas y en el Modelo / vista Ver programación.

Ver perfil de usuario http://qt-espanol.forosactivos.net

6 Codigo Fuente el Sáb Dic 19, 2009 1:33 am

Código:
#include <QtGui>

 int main(int argc, char *argv[])
 {
    QApplication app(argc, argv);
    QWidget window;

    QLabel *queryLabel = new QLabel(
        QApplication::translate("nestedlayouts", "Query:"));
    QLineEdit *queryEdit = new QLineEdit();
    QTableView *resultView = new QTableView();

    QHBoxLayout *queryLayout = new QHBoxLayout();
    queryLayout->addWidget(queryLabel);
    queryLayout->addWidget(queryEdit);

    QVBoxLayout *mainLayout = new QVBoxLayout();
    mainLayout->addLayout(queryLayout);
    mainLayout->addWidget(resultView);
    window.setLayout(mainLayout);

    // Set up the model and configure the view...

    QStandardItemModel model;
    model.setHorizontalHeaderLabels(
        QStringList() << QApplication::translate("nestedlayouts", "Name")
                      << QApplication::translate("nestedlayouts", "Office"));

    QList<QStringList> rows = QList<QStringList>()
        << (QStringList() << "Verne Nilsen" << "123")
        << (QStringList() << "Carlos Tang" << "77")
        << (QStringList() << "Bronwyn Hawcroft" << "119")
        << (QStringList() << "Alessandro Hanssen" << "32")
        << (QStringList() << "Andrew John Bakken" << "54")
        << (QStringList() << "Vanessa Weatherley" << "85")
        << (QStringList() << "Rebecca Dickens" << "17")
        << (QStringList() << "David Bradley" << "42")
        << (QStringList() << "Knut Walters" << "25")
        << (QStringList() << "Andrea Jones" << "34");

    foreach (QStringList row, rows) {
        QList<QStandardItem *> items;
        foreach (QString text, row)
            items.append(new QStandardItem(text));
        model.appendRow(items);
    }

    resultView->setModel(&model);
    resultView->verticalHeader()->hide();
    resultView->horizontalHeader()->setStretchLastSection(true);
    window.setWindowTitle(
        QApplication::translate("nestedlayouts", "Nested layouts"));
    window.show();
    return app.exec();
 }

Ver perfil de usuario http://qt-espanol.forosactivos.net

Contenido patrocinado


Ver el tema anterior Ver el tema siguiente Volver arriba  Mensaje [Página 1 de 1.]

Permisos de este foro:
No puedes responder a temas en este foro.