La función de conexión qt

1, la función connect () se implementa con una ranura de señal asociado.

Nota: Sólo la clase QO bject y su clase derivada a señales de uso y las ranuras mecanismo

2, el prototipo de función

static QMetaObject::Connection connect(const QObject *sender, const char *signal,const QObject *receiver, const char *member, Qt::ConnectionType = Qt::AutoConnection);

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

inline QMetaObject::Connection connect(const QObject *sender, const char *signal,const char *member, Qt::ConnectionType type = Qt::AutoConnection) const;

En la primera función: transmitir un primer objetivo parámetro de señal, por ejemplo dlg detrás; segundo parámetro es la señal a transmitir, por ejemplo, detrás de la señal (dlgReturn (int));

El tercer parámetro es el sujeto que recibe la señal, por ejemplo, detrás de esta, esto indica que un componente, es decir, Widget, cuando este parámetro es este tiempo, se puede omitir, como en la tercera función, el parámetro por defecto a este; el cuarto parámetro es una ranura para ser ejecutado, por ejemplo,
detrás de la ranura (showValue (int)), se puede especificar una señal, la señal asociada a la señal de lograr.

p.ej:

MyDialog *dlg=new MyDialog(this);//将对话框中的自定义信号与主界面中的自定义槽进行关联
connect(dlg,SIGNAL(dlgReturn(int)),this,SLOT(showValue(int)));
dlg->show();

nota:

1, la señal de la ranura, debe ser la señal () y la ranura () macros, que se convierte en el tipo char parámetro const *

2, debe utilizar cuarto parámetro las ranuras palabra clave especifica el estado de la ranura.

p.ej:

private slots://槽的声明
void showValue(int value);
void on_label_linkActivated(const QString &link);

señales de conexión de Qt y las ranuras que no están en el mismo hilo

Envió una señal de que el hilo principal, otra función ranura de rosca no responde, el problema a cabo durante varias horas, se dio cuenta de que conecte la primera vez en cinco parámetros mal aquí lo hace debajo de las notas.

señales de conexión y ranuras para conectar el QT, QT indispensable en el proceso de programación. De hecho, tiene el quinto parámetro, pero por lo general utiliza el valor por defecto, para satisfacer las necesidades especiales puede ser necesario ajustar manualmente la hora.

Qt :: Auto Unión: valor predeterminado, determina el tipo de transmisión de la señal cuando se utiliza el valor de la conexión. Si el remitente y el receptor en el mismo hilo, a continuación, utiliza automáticamente Qt :: tipo DirectConnection. Si el destinatario y el remitente no es un hilo se utiliza automáticamente tipo Qt :: QueuedConnection.

Qt :: DirectConnection: Función de ranura será llamado cuando la señal se envía directamente a ejecutar la función de la ranura donde el hilo de señal remitente. El efecto se parece a una función de llamada directa en posición de la ranura de transmisión de señales. El más peligroso en un entorno multiproceso, puede causar el colapso de Ben.

Qt :: QueuedConnection: Función de ranura en la parte posterior de control de bucle de eventos para el tiempo en el que el receptor se denomina un hilo, el hilo que corre a través de la función de la señal del receptor. Después de enviar la señal, la función de la ranura no se llamará de inmediato, espere hasta que la función actual del receptor ejecutado, después de entrar en el bucle de eventos, la función de la ranura se llamará. entorno multi-hilo generalmente utilizar este.

Qt :: BlockingQueuedConnection: llamar la sincronización de la función de la ranura consistente con el Qt :: QueuedConnection, pero después de enviar un emisor de señales, donde el hilo se bloquea hasta que el tanque se queda sin función. El emisor y el receptor no deben estar en un hilo, de lo contrario el programa un punto muerto. Ocasiones entre varios subprocesos necesidad de sincronizar pueden necesitar esto.

Qt :: UniqueConnection: Este bit indicador pulsando o | juntos en combinación con los anteriores cuatro (). Cuando este conjunto bandera, y cuando una señal se ha conectado a la ranura, y luego repetir la conexión fallará. Que es, para evitar la duplicación de conexión.

Supongo que te gusta

Origin www.cnblogs.com/schips/p/12537000.html
Recomendado
Clasificación