如何将Qt类中声明的结构传递给同一类的函数?
How to pass a struct declared in a Qt's class to the same class's function?
#ifndef FF_H
#define FF_H
#include <QtQuick/QQuickPaintedItem>
#include "qpainter.h"
#include <QQuickItem>
#include <QQuickWindow>
class Draw_on_qimage : public QQuickPaintedItem
{
Q_OBJECT
public:
virtual void paint(QPainter *);
Draw_on_qimage(QQuickPaintedItem *parent = 0);
public slots:
void setbb_list(QList<bounding_box_struct> bb_list)
{
for (int h = 0; h < bb_list.size(); h++)
{
bounding_box_struct obj;
obj.x = bb_list[h].x;
m_bb_list.push_back(obj);
}
emit bb_listChanged(m_bb_list);
}
protected:
virtual void componentComplete ();
private:
struct bounding_box_struct
{ int x;
int y;
int w;
int h;
std::string vehicle_type;
};
Q_PROPERTY(QList<bounding_box_struct> bb_list
READ bb_list
WRITE setbb_list
NOTIFY bb_listChanged)
QList<bounding_box_struct> m_bb_list;
signals:
void bb_listChanged(QList<bounding_box_struct> bb_list);
};
#endif // FF_H
bb_list
必须是Q_PROPERTY
。
我会遇到以下错误:
error: ‘bounding_box_struct’ was not declared in this scope
void setbb_list(QList<bounding_box_struct> bb_list)
^
error: request for member ‘size’ in ‘bb_list’, which is of non-class type ‘int’
for (int h = 0; h < bb_list.size(); h++)
^
error: invalid types ‘int[int]’ for array subscript
obj.x = bb_list[h].x;
^
您必须在使用结构之前定义结构。因此,将其放在课堂上。
此外,如果您有使用这种类型的公共方法,则也应该公开。
还要注意,如果将方法实现放在类定义之外,则必须完全符合返回类型的结构,但这是参数的可选:
struct MyClass {
struct Inner {};
Inner doThis(Inner i);
Inner doThat(Inner i) { return i; } // Not qualified
};
MyClass::Inner MyClass::doThis(Inner i) { return i; }
// ^ required ^ Can be qualified
相关文章:
- 获取从C++中同一类中的构造函数调用的方法返回的值
- 如何封装一个函数,以便它只能由同一类中的一个其他函数调用?
- 如何使用connect将qml按钮与同一类的cpp函数连接起来
- 类成员函数无法访问同一类的私有结构节点?
- 无法将指向类的成员函数的函数指针作为参数传递给同一类的另一个成员函数
- 在 c++ 中将对象设置为等于同一类的构造函数是否有效?
- 如何将一个类的成员函数用作另一类的友元函数
- 如何获取同一类函数中类成员的函数指针?
- 一类嵌套类不能用作模板函数类型名
- 在多个文件中与同一类分开函数
- 将1D或2D向量传递给同一类的构造函数
- 仅一个功能的链接错误.在同一类和CPP文件中具有相似签名的其他函数工作正常
- 让构造函数在其初始化列表中调用同一类的另一个构造函数是否有效
- 如何将两个类成员函数与同一类中的另一个函数一起添加
- 在C++中,类是否可以包含指向构造函数中初始化的同一类的指针?
- C 使用来自另一类的函数
- 如何为同一类对象的成员函数保留单独的变量副本?
- 如何将成员函数用于同一类的不同对象
- 为什么一个非平凡的成员需要为同一类中的匿名联合定义构造函数
- 我无法使用类变量作为同一类函数的默认参数