QObject信号和插槽未访问功能
QObject signals and slots not accessing function
我有一个函数,我正试图通过信号和插槽连接,但当我运行可执行文件时,该函数没有被调用。我在函数中放入了一个调试错误,所以我知道它没有被调用。我的代码如下所示:
我的头文件:
#include "MyWidget.h"
#ifndef MYCLASS_H
#define MYCLASS_H
class MyClass: public QObject{
Q_OBJECT
public:
MyClass( QObject *parent = nullptr);
MyWidget *myWidget;
public slots:
void setTranslation(int value);
};
#endif
我的源文件:
#include "MyClass.h"
MyClass::MyClass(QObject *parent): QObject(parent)
{
some code here....
QSlider *xSlider = new QSlider(Qt::Vertical);
xSlider->setRange(0, 10);
QObject::connect(xSlider, SIGNAL(valueChanged(int)),
this, SLOT(setTranslation(int)));
some code here...
}
void MyClass::setTranslation(int value)
{
some code here...
}
您忘记在类声明之后立即添加Q_OBJECT
宏。它是MOC(元对象编译器)用来为代码生成附加元信息的。
class MyClass: public QObject
{
Q_OBJECT
// all other class data, member function declaration
public:
MyClass( QObject *parent = nullptr );
};
这应该足够好了。
编辑:
还记得在默认构造函数中使用nullptr
默认的QObject
指针。
相关文章:
- 如何从其他功能C++访问参数?
- 如何使用 MPI 的远程内存访问 (RMA) 功能并行化数据聚合?
- 访问我以前可以访问的功能时出现分段错误
- 好友功能 - 成员无法访问
- 如何启用友元类的友元功能直接在C++中访问其私有成员
- 无法从好友功能访问类的私有成员?"ostream"不是"std"的成员?
- 无法访问公共功能? 没有指定成员?
- 好友功能仍无法访问私人会员
- 我无法获得好友会员功能以实际访问私人会员
- GPU设备函数如何访问主机功能中定义的对象
- 派生类中的成员字段别名(无访问器功能)
- 从C文件访问C 类成员功能
- 访问嵌套结构的数据成员并将结构传递到功能C
- 使用宏访问功能
- QT:类的访问功能,该功能使用构造函数外的GUI小部件
- 在其他源文件中没有通用的头文件访问功能
- 这是使用访问功能的好习惯
- 从C 访问功能环境中的LUA变量
- 如何在右键单击链接并从上下文菜单访问功能后获取链接的 DOM
- QObject信号和插槽未访问功能