在QT中如何用自定义结构作为信号和槽的参数,在网上查了一通,用人说要用qRegisterMetaType注册结构,还有说要为结构使用宏Q_DECLARE_METATYPE。不知道是不是他们的版本太旧。经本人验证,既无需注册,也无需使用宏,就可使用结构或类作为信号和槽的参数。我使用的版本为Qt Creator 4.7.0, 编译构件是Qt 5.11.1 MinGW 32 bit
1.定义结构
typedef struct
{
int type;
}Struct_Args;
2.信号
void PostSignal_Struct(Struct_Args);
3.槽函数
void handle_Signal_Struct(Struct_Args args);
4.连接信号和槽
connect(this, SIGNAL(PostSignal_Struct(Struct_Args)), this, SLOT(handle_Signal_Struct(Struct_Args)));
以类作为信号和槽的参数,方法类同。
示例代码:https://download.csdn.net/download/zztoll/10692776
代码同时演示了以指针和引用作为信号和槽的参数。