Red de conocimiento informático - Material del sitio web - Cómo utilizar archivos ui

Cómo utilizar archivos ui

En los últimos dos días, he estado siguiendo al profesor para recibir tutoría. Algunos estudiantes siempre están confundidos acerca de cómo usar los archivos de UI diseñados con el diseñador de UI. Lo explicaré con un ejemplo a continuación. Espero que sea útil para los estudiantes. que tienen tales dudas.

De hecho, ahora que tenemos la herramienta de diseño de herencia qtcreator, como desarrolladores, ya no necesitamos considerar este problema, porque cuando usas qtcreator para crear un proyecto, el marco proporcionado por qtcreator ya completó esta tarea para nosotros.

Comencemos con este programa:

Cree un nuevo proyecto.

En este proyecto, use el diseñador de interfaz de usuario para diseñar dicha interfaz.

p>

Esto es lo que ejecuté con ctrl alt r. Cómo usar el diseñador de interfaz de usuario para diseñar un archivo de interfaz de usuario que se pueda ejecutar es de lo que vamos a hablar en este artículo.

Primero, echemos un vistazo a cómo se implementa el marco predeterminado proporcionado por qtcreator. Para comprender cómo se implementa qtcreator, debe consultar el archivo dialog.h.

#ifndef DIALOG_H

#define DIALOG_H

#include lt;QDialoggt;

espacio de nombres Ui {

Diálogo de clase;

}

Diálogo de clase: QDialog público {

Q_OBJECT

público:

Diálogo ( QWidget *parent = 0);

~Dialog();

protegido:

void changeEvent(QEvent *e);

privado:

Ui::Dialog *ui;

ranuras privadas:

void on_pushButton_clicked()

}; >

#endif // DIALOG_H

Al observar, es fácil concluir que lo que resalté en rojo arriba es la clave para implementar este programa. Declara una clase, usa la interfaz ui diseñada como un subobjeto de la clase, primero completa la construcción del subobjeto en su constructor y luego usa el subobjeto ui para llamar a su función setupUi(this) para implementar la interfaz de usuario real.

Dialog::Dialog(QWidget *padre):

QDialog(padre),

ui(nueva Ui::Dialog)

{

ui-gt; setupUi(this);

}

Después de leer el código anterior, analicemos por qué usar archivos ui como este.

Antes de que existiera qtcreator, si se proporcionaba un archivo ui, ¿cómo deberíamos llamarlo?

Para archivos ui, no sé si conoce la herramienta uic, que es una herramienta heredada de qt y puede usar ui para generar archivos .h.

uic dialog.ui -o tt.h

El archivo generado es el siguiente:

/************ ** ************************************************* *** **** ************

** Leer desde el archivo UI 'dialog.ui'

**

** Creado por: domingo 9 de mayo 17:29:42 2010

** por: Qt User Interface Compiler Versión 4.6.2

**

**advertir! Al recompilar un archivo UI, ¡todos los cambios en este archivo se perderán!

************ ******************************* ***********************************/

#ifndef TT_H

#definir TT_H

#include lt;QtCore/QVariantgt;

#include lt;QtGui/QActiongt;

#include lt;QtGui /QApplicationgt;

#include lt;QtGui/QButtonGroupgt)

#include lt;QtGui/QDialoggt;

#include lt;QtGui/QHeaderViewgt;

p>

#incluye QtGui/QLabelgt;

#incluye QtGui/QLabelgt

#incluye QtGui/QPushButtongt; p>

QT_BEGIN_NAMESPACE

clase Ui_Dialog

{

público:

QLabel *etiqueta;

QPushButton * pushButton;

void setupUi(QDialog *Dialog)

{

if (Dialog-gt; objectName().isEmpty())

Dialog -gt;setObjectName(QString::fromUtf8("Dialog"));

Dialog-gt;resize(115, 148);

etiqueta = nueva QLabel (Diálogo);

label-gt; setObjectName( QString:: fromUtf8("label")); ));

etiqueta-gt; p>

fuente QFont;

font.setPointSize(12);

Fuente.

setWeight(75);

etiqueta-gt; setFont(fuente);

pushButton = new QPushButton(Dialog);

pushButtonon-gt; :: fromUtf8("pushButton"));

pushButtonon-gt; setGeometry(QRect(20, 80, 75, 23));

retranslateUi(Dialog); >

QMetaObject:: connectSlotsByName(Dialog);

}// setupUi

void retranslateUi(QDialog *Dialog)

{

Dialog-gt; setWindowTitle(QApplication::translate("Dialog", "Dialog", 0, QApplication::

label-gt; setText(QApplication::translate("Dialog", "hola) ,wang", 0, QApplication::UnicodeUTF8));

pushButton-gt; setText(QApplication:.QApplication::UnicodeUTF8));