Necesito crear varias clases de eventos personalizados para una aplicación Qt.¿Existe alguna manera más clara de registrar eventos personalizados Qt?
En este momento, parece que voy a necesitar para poner en práctica el siguiente código de registro del tipo de evento para cada clase de evento:
class MyEvent : public QEvent
{
public:
MyEvent() : QEvent(registeredType())
{
}
static QEvent::Type eventType;
private:
static QEvent::Type registeredType();
}
QEvent::Type MyEvent::eventType = QEvent::None;
QEvent::Type MyEvent::registeredType()
{
if (eventType == QEvent::None)
{
int generatedType = QEvent::registerEventType();
eventType = static_cast<QEvent::Type>(generatedType);
}
return eventType;
}
Cualquier sugerencia sobre cómo puedo simplificar esto, o al menos ocultarlo con una macro ?
También puede echar un vistazo a [esta publicación de stackoverflow] (http://stackoverflow.com/a/8232397/5253471). Funciono bien para mi. – Francois
@Francois Sí, la respuesta a la que se ha vinculado proporciona una solución más elegante que esto más el hecho de que en los tipos de eventos generales se definen como constantes para evitar anular un evento de la nada. – rbaleksandar