connect函数参数问题

本文详细介绍了在Qt中使用QObject::connect函数连接信号与槽时应注意的若干要点,包括信号与槽函数需有参数类型,参数类型的匹配规则,线程间连接类型的选择以及常量参数和引用参数的处理。通过示例代码解析了不同参数情况下的连接方式,强调了正确连接对程序稳定性和效率的重要性。
摘要由CSDN通过智能技术生成

1: 首先要链接的两个类必须继承与QObject,同时添加 Q_OBJECT;


2:在qt中QObject::connect中填写的signal和slot函数,一定要填写参数类型;

因为类中的函数可以,也就是,重载函数名一样,参数不一样,如果QObject::connect中的函数没有参数类型,则无法正确连接;


3: QObject::connect中的signal 和 slot 函数一定要有参数类型, 但是,不可以有参数:

You must use the SIGNAL() and SLOT() macros when specifying the signal and the method, for example:


QLabel *label = new QLabel;
QScrollBar *scrollBar = new QScrollBar;
QObject::connect(scrollBar, SIGNAL(valueChanged(int)),      label,  SLOT(setNum(int)));
This example ensures that the label always displays the current scroll bar value. Note that the signal and slots parameters must not contain any variable names, only the type. E.g. the following would not work and return false:




4:在参数部分,如定义了:typedef unsigned char       BYTE;

//signal:

void  CClass1::setBuf( BYTE * );


//pulic slots:

void CClass2::setBuf(  unsigned char * )

{

    MessageBoxQ( "消息响应" );

}


这样,通常可以用BYTE替换unsigned char ;

但是在QObject::connect(  pClass1, SIGNAL( setBuf( BYTE * )  ),  pClass2, SLOT( setBuf( unsigned char * ) )  );</

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值