问题标签 [qqmlapplicationengine]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c++ - Qt/QML:如何在不重新启动我的应用程序的情况下“切换到”或“打开”另一个 QML 文件?
我有一个小应用程序,它从服务器加载 QML 文件并向用户显示某种“书架”。
用户可以选择其中一本显示的书籍,C++ 将在后台下载一个 ZIP 文件,将其解压缩。结果是文件系统上每本书的文件夹都有一个“main.qml”文件,该文件基本上是该书的独立版本,允许用户浏览/缩放/等。
我ApplicationWindow
用来在其 QML 文件中显示书架,现在我想知道“切换”到书并将其显示在 ApplicationWindow 中的最佳方法是什么。最好的意思是,如果书架几乎从内存中“卸载”以释放用于书籍展示的资源,那就太好了。
我该怎么做?
我感觉不太“正确”的粗略想法是:
- 用于
QQmlApplicationEngine::load()
加载另一个 URL? - 将书的 QML 组件作为最顶层的子对象添加到书架;但这会导致大量资源浪费。
- ...?
任何建议表示赞赏!
c++ - 错误:QQmlApplicationEngine 加载组件失败
我尝试注册一个类型,但出现此错误:
这是我正在使用的代码:
qml - 在 QML 中更新 ImageView
我在运行时使用opencv处理图像并希望使用imageView在QML中显示该图像的更新版本,我目前正在运行时创建一个新的图像文件并将其路径重新分配给QML中的imageView,有没有更好的方法这个?
qt - 我收到错误:“QQmlApplicationEngine 无法加载组件”和“qrc:/main.qml:-1 找不到文件”
我创建了一个 Qt Widgets 应用程序,然后向其中添加了一个名为“ main.qml ”的 qml。我的文件是qml.qrc中的dialog.cpp、dialog.h、dialog.ui、main.cpp、untitiled9.pro、main.qml
主.cpp:
QT += qml quick widgets
我在untitled9.pro中写道。
我没有修改其他代码,这是怎么发生的?这是我在stackoverflow中的第一个问题,我试着把我的问题说清楚。
c++ - 覆盖 QQuickImageProvider requestImage()
我正在使用 QQuickImageProvider 并在 requestimage 函数中使用了一个类对象(PageBuffer):
我想使用保存在 PageBuffer 对象中的变量设置 ImageProvider 的 QImage 并使用 id 作为索引 像这样:
这是我要调用图像提供程序的 QML 文件:
qt - 正确重新加载 QQmlApplicationEngine
我有一个基于 QML 的应用程序,它main.qml
从文件系统加载文件,如下所示:
这工作正常,但我想“重新加载”引擎,以防 main.qml 被更新版本替换。
到目前为止,我尝试load()
再次调用,假设引擎会像在其他 Qt 类中一样自动重置自己。
不幸的是,这种情况并非如此。如果我再次调用该方法,将出现另一个窗口,其中包含更新的 qml 文件的内容,而原始窗口保持打开状态并继续显示旧的 qml 文件。
为了解决这个问题,我尝试调用load(QUrl())
,然后clearComponentCache()
对新文件进行最终加载调用。这导致相同的效果。
任何想法如何在应用程序运行时“正确”重新加载 QML 引擎?
qt - 在 C++ 中将新的 qml 对象添加到场景中
我在将新 QML 对象添加到现有场景时遇到问题。
我的main.qml
来源:
MyItem.qml
资源:
最后,这是我的main.cpp
来源:
main.qml
正确显示MyItem.qml
但未出现在main.qml
. Component.status()
返回状态Ready
,没有错误dynamicObject
。我究竟做错了什么?
qt - QML UnitTest 缺少 C++ 上下文属性
我发现这篇较旧的帖子面临同样的问题:How to mock a QML component
不幸的是,没有解决方案。回顾一下这个问题:我有一个导入模块的QML 。TestCase
但是这个模块依赖于一个根上下文属性,该属性通常会添加到main.cpp
. 由于这是一个,我对如何启动TestCase
没有影响。QQmlApplicationEngine
如何添加缺少的上下文属性?
c++ - Use QQuickView or QQmlApplicationEngine to switch between pages from ApplicationWindow
I'd like to use an ApplicationWindow
as a main file and be able to switch to other QML
files from C++
with QQuickView::setSource(const QUrl & url)
. Basically it would do this:
start-up => loads main.qml (ApplicationWindow
) => click on help button => C++
loads help.qml file => etc.
main.qml
(I am wondering if the Loader
here is really necessary here)
However QQuickView
only supports loading of root objects that derive from QQuickItem
. Therefore it doesn't work with ApplicationWindow
.
I'm thinking about using QQmlApplicationEngine
instead of QQuickView
but the usage seems different, this class being only equipped with QQmlApplicationEngine::load(const QUrl & url)
What would be the best course of action for my purpose? Do I really need an ApplicationWindow
in my main.qml file?
qt - 在 C++ 后端访问 QML 组件
我有一个 qml 文件Rectangle
。我想触发onClicked( )
from C++ 后端。那么,如何在 C++/Qt 后端访问 QML 组件引用?