有一些Widget有重载的信号,比如QComboBox:
void currentIndexChanged(int index)
void currentTextChanged(const QString &text)
在连接信号槽的时候,需要做一些处理,要表明具体连接的是哪个类型的信号,否则会报错“无法确定需要哪个重载函数 QComboBox::currentIndexChanged”。
总结了几种方法:
connect(userCombo, QOverload<int>::of(&QComboBox::currentIndexChanged), this, &MyDlg::onChange);
connect(userCombo, static_cast<void (QComboBox::*)(int)>(&QComboBox::currentIndexChanged), this, &MyDlg::onChange);
connect(userCombo, SIGNAL(currentIndexChanged(int)), this, SLOT(onChange(int)));