无法从“QAction*”转换为“QAction”
Could not convert from ‘QAction*’ to ‘QAction’
当我尝试返回值时,我在smtdplugin实现文件中得到此错误。好的,所以我明白我正在创建一个指向QAction的指针,当我试图返回它时,我不能这样做,因为我的方法正在等待对对象的引用。但我不知道该怎么做(我是一个乞丐)如何避免这个问题?,并成功返回该对象
#include "smtdplugin.h"
QAction SmtdPlugin::newItem() {
QAction *item = new QAction(NULL);
return item; // here i get error
}
Q_EXPORT_PLUGIN2(smtdplugin,SmtdPlugin);
头文件:
#ifndef SMTDPLUGIN_H
#define SMTDPLUGIN_H
#include <QObject>
#include <QAction>
#include "smtdinterface.h"
class SmtdPlugin : public QObject,SmtdInterface {
Q_OBJECT
Q_INTERFACES (SmtdInterface)
public :
QAction newItem();
};
#endif // SMTDPLUGIN_H
接口类:
#ifndef SMTDINTERFACE_H
#define SMTDONINTERFACE_H
#include <QAction>
class SmtdInterface {
public:
virtual ~SmtdInterface() {}
SmtdInterface();
virtual QAction newItem () = 0;
};
Q_DECLARE_INTERFACE(SmtdInterface,"com.trololo.Plugin.SmtdInterface/1.0")
#endif
我不熟悉qt,但错误是-
QAction* SmtdPlugin::newItem() // Return type should be QAction* and not QAction
{
QAction *item = new QAction(NULL);
return item;
}
item
的类型是QAction*而不是QAction,这是编译器抱怨的。我想你是把空间弄糊涂了。
QAction* item ; // QAction * item ; QAction *item ;
当你做return item
时,你返回一个指向QAction
的指针,但根据函数的声明,你返回一个QAction
,因此出现错误。
所以,你应该这样做:
QAction* SmtdPlugin::newItem() {
QAction *item = new QAction(NULL);
return item;
}
如果您需要在堆上创建操作,那么最好将返回值更改为QAction*。
在您的代码中,您返回一个类型为QAction*
的项:
return item; // here i get error
但是你的函数签名要求你返回QAction:
QAction SmtdPlugin::newItem() {
要解决冲突,要么将函数签名更改为
QAction* SmtdPlugin::newItem() {
或修改函数的概念,使其不再返回指针。
相关文章:
- 防止主数据类型C++的隐式转换
- 模板参数替换失败,并且未完成隐式转换
- 努力将整数转换为链表。不知道我在这里做错了什么
- HEX值到wchar_t字符(UTF-8)的转换
- lambda参数转换为constexpr技巧,然后获取带链接的数组
- 将 Qvector<uint8_t> 转换为 QString
- 如何在cuSparse中使用cusparseXcoo2csr从coo转换为csc
- 有关插入适配器的错误。[错误]请求从 'back_insert_iterator<vector<>>' 类型转换为非标量类型
- 在c++中使用nlohmann从类到json的转换
- 从"int*"强制转换为"unsigned int"会丢失精度错误
- 将Integer转换为4字节的unsined字符矢量(按大端字节顺序)
- 处理小于cpu数据总线的数据类型.(c++转换为机器代码)
- 如何使用OpenCV将RBG图像转换为HSV,并将H、S和V值保存为C++中的3个独立图像
- 复制列表初始化的隐式转换的等级是多少
- 正在将指针转换为范围
- 如何防止 c++ 在从浮点型转换为双精度型(不适用于 IO)时添加额外的小数?
- 将"打开的CV图像"中的"颜色"转换为整数格式
- 是否可以从int转换为enum类类型
- 如何将Qmenu中的QACTION转换为Qwidget
- 无法从“QAction*”转换为“QAction”