【发布时间】:2020-06-10 02:49:59
【问题描述】:
我在 C++ 中有一个向量,其中每个元素都是同一类的对象。这些对象的属性是字符串和整数。
现在我想在 QML 中创建矩形,具体取决于向量中有多少元素(每个元素 1 个矩形),矩形的特征(例如 x 和 y 位置)取决于向量中对象的属性值(整数特性)。
我的问题是:如何将这些数据从 c++ 导入 QML?以及如何使用 x/y 位置在这些值上创建矩形?
这是 cpp 文件的示例:
#include <iostream>
#include <vector>
#include <string>
class myClass{
public:
int xPosition;
int yPosition;
std::string color;
myClass(int xPosition_, int yPosition_, std::string color_){
xPosition = xPosition_;
yPosition = yPosition_;
color = color_;
}
};
int createVec(){
myClass objectOne(100, 100, "red");
myClass objectTwo(200, 200, "blue");
myClass objectThree(300, 300, "green");
myClass objectFour(400, 400, "black");
std::vector<myClass> vec;
vec.push_back(objectOne);
vec.push_back(objectTwo);
vec.push_back(objectThree);
vec.push_back(objectFour);
for (int i = 0; i < vec.size(); i++){
std::cout << vec[i].xPosition << " " << vec[i].yPosition << " " <<vec[i].color << std::endl;
}
}
编辑:我试图主要通过做类似于this post 的事情来解决我的问题。但是我遇到了多个不同的问题,因为我对 QML、qt 和 c++ 非常陌生。首先我不知道如何将我的类转换为 Q_OBJECT,其次我不知道eatyourgreens 是什么意思:
在 QML 代码中,Thing 的属性可以通过模型作为 model.modelData.size 和 model.modelData.name 访问。
【问题讨论】:
-
这个问题在 Qt 文档和 SO 中被广泛讨论。在提问之前,您是否尝试过使用它来获得答案? Integrating QML and C++, Interacting with QML Objects from C++
-
是的,我通过阅读文档并尝试了几件事来尝试解决我的问题几天,但不幸的是我无法让它工作。这就是我现在在这里寻求帮助的原因。