c++ - QT4没有这样的slot错误

标签 c++ netbeans qt4 signals-slots

我知道有很多相同的问题,但没有一个对我有帮助:

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/

相关文章:

c++ - 无法修改其他线程中 ref 传递的值

java - Eclipse Web 工具平台 (WTP) 与 NetBeans - 用于 Java Web 开发的 IDE

netbeans - 如何在 netbeans 中使用 git reset?

Qt 4 : Move window without title bar

php - 除了代码折叠之外,如何管理单个文件中的长代码?

c++ - SQL 控制台应用程序中的 MFC 库

java - Netbeans中编译java项目的问题

qt4 - 使用 Qt 将平面图像转换为带有 3D 高光的漂亮圆形图像,就像 iPhone 一样

c++ - 静态库 - 使用自己的 Qt .so 文件的静态库

c++ - 为什么 vsnwprintf 不将普通字符串转换为宽字符串?