//写法1:使用函数指针来指向函数地址:
connect(this,static_cast<void(TestManager:: *)(int)>(&TestManager::sgnTest1),this,[=](int x){
qDebug() << "x = " << x;
});
connect(this,static_cast<void(TestManager:: *)(int,int)>(&TestManager::sgnTest1),this,[=](int x,int y){
qDebug() << "x = " << x << ",y = " << y;
});
//写法2:使用函数指针来指向函数地址:
void (TestManager:: *testSgn1)(int) = &TestManager::sgnTest1;
void (TestManager:: *testSgn2)(int,int) = &TestManager::sgnTest1;
void (TestManager:: *testSlot1)(int) = &TestManager::slotTest1;
void (TestManager:: *testSlot2)(int,int) = &TestManager::slotTest1;
connect(this,testSgn1,this,testSlot1);
connect(this,testSgn2,this,testSlot2);
//写法3:通过QOverload返回函数指针来指向函数地址:
connect(this,QOverload<int>::of(&TestManager::sgnTest1),this,QOverload<int>::of(&TestManager::slotTest1));
connect(this,QOverload<int,int>::of(&TestManager::sgnTest1),this,QOverload<int,int>::of(&TestManager::slotTest1));
//写法4:
connect(this,SIGNAL(sgnTest1(int )),this,SLOT(slotTest1(int)));
connect(this,SIGNAL(sgnTest1(int ,int )),this,SLOT(slotTest1(int,int)));