我知道有很多相同的问题,但没有一个对我有帮助:
class Form1 : public QMainWindow {
Q_OBJECT
public:
Form1();
virtual ~Form1();
public slots:
void langChange(const char* lang_label);
private:
Ui::Form1 widget;
void setLangStrings();
};
From1 构造函数:
Form1::Form1() {
widget.setupUi(this);
connect(widget.btnL0, SIGNAL(clicked(bool)), this, SLOT(langChange("en")));
connect(widget.btnL1, SIGNAL(clicked(bool)), this, SLOT(langChange("fr")));
setLangStrings();
}
而且我还实现了这个 langChange 函数:
void Form1::langChange(const char* lang_label)
{
GL_LANG = lang_label;
setLangStrings();
}
调用连接函数时出现这个愚蠢的错误:
No such slot Form1::langChange("sl") in Form1.cpp:15
我将 NetBeans 与 QDesigner 一起用于 UI。我必须说这个 QT4 很难学。
最佳答案
您根本无法将 SIGNAL 与 bool 作为参数连接到 SLOT 与 const char* 作为参数。要执行此类操作,您必须使用 QSignalMapper .您有一个如何在文档中使用它的示例。在你的情况下,它非常简单,所以你应该轻松处理它。
关于c++ - QT4没有这样的slot错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13866206/