Cómo utilizar archivos ui
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 p>
#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>
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));