qt的信号与槽可以用自定义函数吗
发布网友
发布时间:2022-05-04 01:19
我来回答
共1个回答
热心网友
时间:2022-06-20 08:22
可以的;前面需要添加特定的信号槽标识符
class MyClass : public QObject {
// 这个宏一定要添加,否则无法使用信号槽
Q_OBJECT
public:
MyClass(){}
void publicTestFunc() { emit signalTest(110);}
//-- 下面函数是自动的信号函数,无实体,定义即可 --//
signals:
void signalTest(int nCnt); // 可带参数,可不带
//-- 下面函数是自定义的槽函数,需要写实现方法 --//
slots:
void sltTestFunc(int nCnt) {
qDebug() << "connect the signal: " << nCnt;
}
};
// 然后使用
MyClass *test1 = new MyClass();
MyClass *test2 = new MyClass();
connect(test1, SIGNAL(signalTest(int)), test2, SLOT(sltTestFunc(int)));
// 然后用test1发送信号,test2接收