Qt用新的表示法表示插槽,铸造类型

nse*_*jxT 5 c++ qt

鉴于以下两点:

connect(ui->comboBox, SIGNAL(activated(QString)), ps, SLOT(requestPlotsAvailable(QString)));
connect(ui->comboBox, &QComboBox::activated, ps, &PlotSystem::requestPlotsAvailable);
Run Code Online (Sandbox Code Playgroud)

第一个使用旧的符号,它起作用.第二个使用新的表示法并给出错误

error: no matching function for call to 'PlotSystemGui::connect(QComboBox*&, <unresolved overloaded function type>)'
Run Code Online (Sandbox Code Playgroud)

如何使用新表示法避免错误?

fty*_*nse 9

这应该工作

connect(ui->comboBox, 
        static_cast<void (QComboBox::*)(const QString &)>(&QComboBox::activated),
        ps,
        &PlotSystem::requestPlotsAvailable);
Run Code Online (Sandbox Code Playgroud)

有关重载函数的指针,请参阅问题