QT (a): señales y ranuras

Dirección original: https://houkaifa.com/2019/02/18/LearningNotes-QT-01/

contorno

Eran señal de agregado (unión) y la ranura y la función de conexión por Qt Designer.
Medio Ambiente: Win10 + VS2017 + QT5.9.2.
La implementación de contenido: Haga clic en el botón para salir del programa, haga clic en el cuadro de mensaje emergente botón.

Aquí Insertar imagen Descripción


En primer lugar, el proyecto de creación de QT

Abra Visual Studio 2017, la nueva aplicación de interfaz gráfica de usuario QT.

Aquí Insertar imagen Descripción

Durante todo el camino A continuación, en Finalizar.

Aquí Insertar imagen Descripción

La figura es una estructura de directorio inicial:

Aquí Insertar imagen Descripción

F5 para depurar el programa, consulte la interfaz GUI inicial:

Aquí Insertar imagen Descripción

En segundo lugar, el uso de señales Además diseñador QT y la ranura

En solución, el resultado .ui encontrar el archivo por defecto, haga doble clic para abrir en Qt Designer.

Aquí Insertar imagen Descripción

En la caja de widgets El botón de arrastre en la ventana principal.

Aquí Insertar imagen Descripción

Modificar nomObjeto, valor de texto "closeButton" en el Editor de atributos.

Donde nomObjeto es el nombre de los componentes Widget componentes, el texto se muestra en el título del botón. valor de texto también se puede modificar de forma rápida haciendo doble clic en el botón añadir.

Aquí Insertar imagen Descripción

Seguido de la adición de una señal en el editor de señal de canal / ranura.

El remitente es un botón closeButton, la señal () de señal que es el botón izquierdo del ratón (evento / evento) se hace clic, el destinatario es QtGuiApplicationClass, ranuras para el cierre (), una función que es la destrucción QtGuiApplicationClass.

Aquí Insertar imagen Descripción

Ctrl + S para guardar los cambios y volver a VS2017, F5 para depurar el programa, haga clic en el botón closeButton, el programa se cierra.

señales y ranuras QtGui están en representación desarrollo del evento, es decir, la señal es el evento de disparo, la ranura es un controlador de eventos que se activa por la señal.
Puede / editor de ranura agregar fácilmente la señal nativa través de ranuras en la señal de Qt Designer. Después de que el artículo se describe cómo agregar una ranura personalizado.

En tercer lugar, la función de conexión por encargo surco de unión

Añadir un nuevo botón en Qt Designer, las propiedades relevantes modificados para MessageButton, ahora tenemos dos botones.

Aquí Insertar imagen Descripción

Volver VS2017, ir al archivo .h, añadir la definición de las franjas horarias.

En el que el nombre de la función y el tipo de retorno es un formato fijo: vacío on_WidgetName_Event ().
Aquí es WidgetName MessageButton, se hace clic en el evento correspondiente, para que pueda ver la figura siguiente, las declaraciones de funciones completas son:

void on_MessageButton_clicked ();

Aquí Insertar imagen Descripción

Si ui _ * h Aparece archivo .h en el archivo contiene errores, de la siguiente manera:
Aquí Insertar imagen Descripción
sólo tiene que seleccionar la opción Convertir un proyecto a otro QMake generado puede ser resuelto en QT VS menú Herramientas barra de VS2017.
Aquí Insertar imagen Descripción

A continuación, puede saltar al archivo .cpp correspondiente para agregar la función de lograr.

Como se usa en este documento, la función de advertencia de clase QMessageBox para mostrar un cuadro de mensaje de advertencia. Proporciona una gran cantidad de información en el archivo de cabecera de estilo cuadro QMessageBox, el cuadro de información de la llamada correspondiente en el que la necesidad de incluir en el archivo el archivo de cabecera .h. :

#include <QMessageBox.h>

Aquí Insertar imagen Descripción

Hasta ahora, hemos añadido un botón MessageButton, definir e implementar un canal de su función (on_MessageButton_clicked).

Pero ahora se corre el programa, haga clic en el botón messageButton no tendrá ninguna reacción, porque sólo hemos completado la definición e implementación de la función de la ranura, aquí estamos en el constructor de la clase QtGui, las señales y las ranuras están conectados a través de la función de conexión.

Aquí Insertar imagen Descripción

Aquí prototipo de la función de conexión es el siguiente:

static QMetaObject::Connection connect(const QObject *sender, const QMetaMethod &signal,
                        const QObject *receiver, const QMetaMethod &method,
                        Qt::ConnectionType type = Qt::AutoConnection);

Hasta el momento, F5 para depurar el programa, pulse el botón para ver un cuadro de mensaje emergente.

Aquí Insertar imagen Descripción

Publicado 26 artículos originales · ganado elogios 24 · Vistas a 30000 +

Supongo que te gusta

Origin blog.csdn.net/iSunwish/article/details/87858911
Recomendado
Clasificación