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