我试图连接一个组合框值和一个标签,以便当组合框更改时,标签会反映出来。我一直在努力寻找答案,但到目前为止,没有任何效果。我仍然收到错误:no matching function for call to mainWindow::connect(QComboBox*&, const char [38], QString*, const char [26])

我已经尝试过QObject::connectQWidget::connect以及其他任何与Qt有关的方法,但都无济于事。

创建一个表示组合框值的标签并不是我对该程序的最终意图。相反,我希望使用一个简单的标签,然后将其更改为我希望它显示的内容(因此tempLabel)。

mainwindow.h:

class MainWindow : public QMainWindow
{
public:
    MainWindow();

private slots:
    QString getClass(QComboBox *box);
};


mainwindow.cpp:

MainWindow::MainWindow()
{
    QString qMathClassName;

    QComboBox* mathClassCombo = new QComboBox;
    QLabel* label = new QLabel(qMathClassName);

    // omitting layout code...

    connect(mathClassCombo, SIGNAL(currentIndexChanged(const QString &)),
            &qMathClassName, SLOT(getClass(mathClassCombo)));
}

QString MainWindow::getClass(QComboBox *box)
{
    return box->currentText();
}


任何帮助将不胜感激!

最佳答案

您正在将信号连接到具有不同签名的插槽。您必须将广告位更改为

getClass(const QString &)


匹配currentIndexChanged信号。

关于c++ - Qt没有匹配的函数来调用mainWindow::connect(),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/11570969/

10-13 02:40