Quería saber si es posible emitir una señal específica a través de la codificación ... Por ejemplo, quiero emitir el evento de otro botón sin que el usuario haga clic en ese botón. ¿Puedo hacer esto?¿Cómo se causa manualmente una señal de otro control para emitir?
Respuesta
Puede llamar a la función de ese otro botón click. Emitirá la señal de clic.
Las señales se implementan internamente como funciones de miembro protegidas en C++, por lo que le aconsejo que no lo haga. (Son públicos en Qt 5, aunque aún no se recomiendan como una solución general.)
Qt, a través del moc, implementar la palabra clave emit, que le permite emitir señales a través de la codificación.
Si la clase que está utilizando no proporciona un método para emitir alguna señal, puede crear una subclase e implementar una función que lo haga usted mismo. Pero debo decir que nunca había hecho esto por señales "normales". Solo lo hice cuando definí mis propias señales en alguna extensión de clase.
En lugar de que emite la señal por sí mismo y conectarlo a la ranura, Por qué no puedes llamar a la ranura directamente? Las máquinas tragamonedas son como otras funciones de C++, en el sentido de que puedes llamarlo directamente. No veo ningún motivo por el que haya emitido una señal predefinida (como clicked()
). Simplemente llame a su ranura directamente.
para emitir una señal que acaba de escribir
emiten signalname (lista param);
#include <QObject>
class myClass : public QObject
{
Q_OBJECT
public:
myClass (QObject *parent = 0) : QObject(parent) { }
void foo();
signals:
void mySignal(int param);
};
void myClass::foo() { emit mySignal(5); }
Ver más en http://doc.qt.io/qt-4.8/signalsandslots.html
también puede conectar una señal a otra señal para que pueda conectarse mysignal a los botones de clic señal y cuando se emited su señal también se emited la señal clicked ver http://doc.qt.io/qt-4.8/qobject.html#connect
si establece una acción para el botón, también puede simplemente llamar a la acción para activar. Solo use action_of_the_button->trigger();
!
- 1. Qt fuerza QCheckBox para emitir señal en setChecked
- 2. emitir std :: string con señal qt
- 3. ¿Es posible emitir una señal Qt desde un método const?
- 4. Emitir señal si todos los widgets hijos pierden el foco
- 5. Cómo capturar la señal de Control + D?
- 6. Comunicación entre hilos. ¿Cómo enviar una señal a otro hilo
- 7. Insertar un control antes de otro control
- 8. cómo enviar la señal de un programa a otro?
- 9. ¿Cómo acceder a un control de formulario para otro formulario?
- 10. ¿Cómo se suele emitir una solicitud HTTP PUT?
- 11. ¿Cómo se emite una señal desde QPushButton cuando el mouse se cierne sobre ella?
- 12. WPF control de usuario dentro de otro control de usuario
- 13. ¿Cómo procesa python una señal?
- 14. Cómo capturar una señal en QML?
- 15. Comando curl para emitir una solicitud POST
- 16. cómo emitir un tipo genérico para adaptarse a otro método genérico
- 17. IL Emitir para invocar una instancia de delegado?
- 18. ¿Cómo se determina quién emitió la señal?
- 19. Cómo cerrar una jgrowl manualmente
- 20. ¿Cuál es el punto de emitir una advertencia de compilación para "while (true)" y no emitir una para "for (;;)"?
- 21. ¿Es válido emitir un `enum` a otro` enum` en [C]?
- 22. ¿Cómo se despliega manualmente un DataGridViewComboBoxColumn?
- 23. No se pueden emitir mensajes de registro en MbUnit + TestDriven
- 24. Cómo instalar una biblioteca de Python manualmente
- 25. WPF: Chainging property de otro control en el control Trigger
- 26. ¿Cómo puedo generar una señal estereoscópica compatible con HDMI 1.4a desde una aplicación OpenGL a una 3DTV?
- 27. Creando una señal django para actualización de detalles de usuario
- 28. (en su caso) se puede tomar una ASP.NET control de usuario heredan de otro control de usuario?
- 29. ¿cómo en BOOST enviar una señal en un hilo y hacer que la ranura correspondiente se ejecute en otro hilo?
- 30. ¿es posible anclar un control a otro control?
A veces le gustaría acceder al remitente() en la ranura. Eso no funciona al invocar la ranura directamente – Ben