problema
Planteamiento del problema
Solución
viviendo cómodamente sin la ayuda de nadie
//xxx.h
signals:
xxx
private slots:
xxx
//xxx.cpp
connect(xx,xx,xx,xx);
semiautomático
Definitivamente es difícil adaptarse a esto cuando se usa para ir a la función de tragamonedas, y lo encuentro particularmente problemático. De hecho, tenemos un método relativamente conciso.
¡Solo necesita estandarizarse!
Por ejemplo, necesito agregar un evento de clic pushButton:
// xxx.h
private slots:
void on_pushButton_DigitalIO_clicked();
// xxx.cpp
void xxxx::on_pushButton_DigitalIO_clicked(){
//...
}
Se encontró que este método fue causado por un accidente. La función de ranura personalizada siempre se llamaba dos veces y la señal solo se enviaba una vez. Al final, se descubrió que el nombre de la función de ranura era un problema.
Entonces comencé a pensar, hicimos clic para ir a la ranura, QT Creator
¿qué hicimos por nosotros?
Permítanme hablar primero de la conclusión, Qt Creator
nos ayudará a generar una función de ranura nombrada en un formato específico; al compilar, se hace internamente de acuerdo con las reglas de nomenclatura connect
.
Específicamente:
- Modificar
ui文件
, compilar y generarui_xxxx.h
ui_xxxx.h
ContienesetupUint( )
la función, debe haber el final de la funciónQMetaObject::connectSlotsByName(HardwareControl)
Veamos la Qt
explicación oficial del documento:
esta función busca de forma recursiva todos los objetos secundarios de un objeto dado, y desde su señal de coincidencia para seguir ciertas reglas del banco de objetos.
De acuerdo con las reglas, solo necesitamos definir la función del canal puede ser, connect
vamos Qt
a completarla -
void on_<object name>_<signal name>(<signal parameters>);