Qt快速元素从c++ -创建和销毁-是可能的
Qt Quick elements from C++ - Creating and destroying - Is it possible?
我想同时使用Qt Quick和Qt Widgets来显示用户界面。问题是我想在c++代码中创建这两个。(UI在编译时没有定义。)后者没有问题。不幸的是,我找不到任何例子如何在运行时创建声明性场景。看起来可以用QML代码创建文本字符串并对其进行解释。不幸的是,我想要更理智的东西。这可能吗?
我玩QT5,但我对QT4的答案也很感兴趣。
我相信这会给你答案:http://www.qtcentre.org/threads/48767-Can-a-QML-element-be-displayed-inside-a-QT-C-GUI
这是可能的。你的代码应该像这样:
// inside custom QGraphicsView class...
...
QGraphicsObject *qmlThing = getQMLGraphicsObjectFromURL(QUrl("pathToYourURL"));
myScene->addItem(qmlThing);
...
QGraphicsObject * MyGraphicsView::getQMLGraphicsObjectFromURL(const QUrl &url) {
QDeclarativeComponent component(new QDeclarativeEngine(), url);
QObject *object = component.create();
return qobject_cast<QGraphicsObject *>(object);
}
似乎在运行时生成QML代码是可行的方法。根据UI的动态程度,你可以使用文本模板库,如c++ HTML模板框架、模板库、HTML生成器库等。通过这种方式,你在一个文件中有了一个UI的框架,你只需通过调用你选择的模板库来填写变化的部分,类似于如何生成动态网页。
相关文章:
- 如何为 c++ 的不同变量类型的结构元素创建动态数组?
- 如何创建一个所有行大小不同的 2D 数组,并且用户将指定每行将有多少个元素?
- push_back通过自行创建的对象获取最后一个元素的向量
- 动态分配列表 - 创建一个函数,用于删除所有包含偶数值的元素
- std::map:当元素不可默认构造时创建/替换元素
- 如何在新数组较小时创建新数组并将旧数组的最后一个元素复制到新数组中?
- 从转换后的容器元素创建离散分布
- 如何在 c++ 中创建对的优先级队列.这会弹出具有最小值的元素.默认的弹出最大值
- gStreamer 将元素添加到通过 gst_parse_launch 创建的管道中
- 我无法在用forward_as_tuple创建的元组中按类型访问元素
- 第 k 个最小元素 - 不能创建大于 k 大小的数组
- 创建一个函数来转换数组元素的类型并返回数组的地址
- 我想创建一个嵌套数组,该数组由另一个数组中的所有元素组成,但分为两个
- r-在Rcpp和C++之间转换矢量(使用Rcpp::as或Rcpp:::wrap)是否会创建一个新的矢量并复制元素
- 解析字符串以创建元素列表
- 时间和空间复杂性在二叉树的每个级别创建元素向量(NON-BST)
- 首先创建字符串,然后通过移动语义将其添加到 vector 或在 vector 中创建元素是否具有内存效率
- 为什么'std::vector<int> b{2};'创建 1 元素向量,而不是 2 元素向量?
- 如何在VTK中动态创建元素
- lower_bound功能,而不创建T元素