将 2d 数组从 c++ 传递到 qml
Pass 2d Array from c++ to qml
问题在上面。我可以在 qml 中创建一个 2d 数组,如下所示:
function create()
{
var array= new Array(9);
array[0]= new Array(
}
那么如何在 c++ 中创建这样的数组呢?我试过了:
QVariant myArray= QVariant([4,5,6,7]);
但这行不通。
您可以使用可以传递给 qml 的QVariantList
:
QVariantList list;
list.append(QVariantList{5, 5, 6, 7});
问题是:
QVariant
无法存储数组,因此这些行根本不会编译:
int array[] = {0, 1, 2};
QVariant v = array;
或
QVariant x = {0, 1, 2};
或
QVariant x{0, 1, 2};
但是,存在特定的类型,因此您最好这样做:
QVariantList myArray =
{
QVariantList{4, 5, 6, 7},
QVariantList{0, "one", true}
//etc
};
并访问以下项目:
int x = myArray[0].toList()[0].toInt();
bool y = myArray[1].toList()[2].toBool();
相关文章:
- 从C++实例化QML
- 使用CMake创建QML插件
- QT通过C++添加映射QML项目
- 如何在没有信号的情况下从C++执行QML插槽
- QML按钮点击功能执行顺序
- QML:修改在不同QML文件(而非main.QML)中定义的子对象的属性
- 建议在运行时将带有类实例的列表从c++导入qml
- Qt Quick-如何仅从c++代码与qml属性交互
- 如何将带有自定义对象的容器从C++传递到QML
- QML 使用带有参数C++函数
- 最佳做法是从另一个线程访问 qml 中的Q_PROPERTY
- 如何从C++端挂接到 QML 项的 onClick 事件
- 在 qml 中使用 Q_ENUM 和 Q_PROPERTY 作为枚举类
- 从C++更改 QML 图像源
- QML TableView 使用 QtQuick.Controls 2 单击行
- 如何多次询问来自QML对话框的输入?
- QtQuick - qml:28:错误:未知方法返回类型:自定义类型
- 阅读 QML 中结构C++ QVector 的 QVector
- 如何使用connect将qml按钮与同一类的cpp函数连接起来
- Qt QML桌面应用程序自动化测试