问题标签 [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.
python - 如果 QApplication 没有被明确引用为父级,为什么 QQmlAppicationEngine 在退出时会崩溃?
我有一个简单的 qml 应用程序,遵循 QmlBook 教程。Qml 代码如下:
我正在使用 PyQt5 与 QQmlApplicationEngine 一起运行它。执行应用程序的python代码如下:
我见过的每一个引用,QmlApplicationEngine
总是被声明为
engine = QmlApplicationEngine()
,但是,当我像这样运行代码时,它可以工作,但是当应用程序退出并出现错误时崩溃QPixmap: Must construct a QGuiApplication before a QPixmap
。当我改为使用时,这是固定的engine = QmlApplicationEngine(parent=app)
。
我的问题是为什么会发生这种情况,因为我想避免在没有正确理解我在做什么的情况下做出代码决策。
c++ - 从cpp动态加载和卸载2个qml文件
我需要启动 2 个不同的 Qml 文件“mainwindow.qml”和“basic.qml”,而两者都是相互独立的。
最初我需要基于标志 bSettingMainWindow 启动 qml 窗口,基于此我将启动任何一个 qml 文件。
启动后,我需要随时在这 2 个 qml 文件之间切换。它应该像加载和卸载“mainwindow.qml”和“basic.qml”,基于用户操作。因为因为内存问题,我需要一次加载它们中的任何一个。而且我不想玩可见的真假。
而从下面的代码中,我可以加载基于标志 bSettingMainWindow 的任何一个 qml 文件。并且在加载后我可以切换到另一个 qml 文件窗口。
假设我首先在 Mainwindow.qml 中启动,然后我在 mainwindow.qml 的矩形上单击鼠标按钮并移动到 basic.qml,现在如果我单击 basic.qml 的矩形,它不会切换到 mainwindow.qml。反之亦然。 只有一次我可以切换这两个黑白。我想多次切换。 以下是代码,请提供您的答案
qt - Qml SwipView当前索引在改变滑动方向时发生变化
我正在尝试在 qml 中切换滑动视图的某些特定项目/页面索引上的滑动方向。当我使用这段代码更改方向时,索引会无缘无故地更改。
是错误还是我做错了什么?
qt - QML 应用程序窗口移动到非可见区域并且不再能够移动到可见区域
我正在构建一个 qml 应用程序,应用程序窗口设置了以下提示:Qt.CustomizeWindowHint 和 Qt.Window。当尝试通过单击和拖动将窗口状态从最大化->窗口切换来缩放应用程序时,应用程序消失了并且不再可访问。我在控制台中收到以下错误:
现在,即使我重新启动程序,我的应用程序仍然会返回到我无法查看它的状态。我使用 pyCharm 作为我的 IDE,Windows 10 作为我的操作系统,这个应用程序是用 pyqt5/qml 编写的。
我可以在使用 Win+Tab 时看到该应用程序,但在使用 Win+L\R 时看不到。我希望我能弄清楚这是否是 qml 中可定制窗口的常见问题,如果是这样,我需要做些什么来允许用户重新访问应用程序窗口。
此外,如果我删除可自定义的窗口,我可以使用 Win+L\R 重新获得对应用程序的访问权限。
qt - 如何在 QML 中找到递归重新排列的来源
我将我的 QML 应用程序从 Qt 5.12 更新到了 Qt 5.15。
我的应用程序使用以下代码加载其 qml 源代码:
当engine->load
被调用时,我现在收到以下警告,这在 Qt 5.12 中没有:
Qt Quick Layouts:检测到递归重新排列。两次迭代后中止。
如何找到此警告的来源以便修复我的代码?
编辑:
在两次否决之后,我想澄清我的问题的意图。
我有一个非常大的应用程序,它正在加载一个很大的 qml 文件树,main.qml 是主窗口。我发布的警告来自应用程序输出窗格,没有任何提示导致警告的源文件位置。
我正在寻找一种方法来找到导致这种警告的源文件位置。我相信问如何实现这一点是合理的,而且我相信这是许多将 qml 代码更新到 Qt 5.15 的人都会遇到的普遍问题。此类问题的性质是无法提供独立的示例(如评论中要求的)。
python - 在 Component.onCompleted 中从 QQmlApplicationEngine 获取根对象时出错
我尝试在窗口完成后获取根对象,但出现错误:
错误:列表索引超出范围
奇怪的是,当我在 MouseArea 单击后尝试调用 foo.init_window() 时,它会起作用。
这是我的python代码:
主文件
这是 .qml 文件:
main.qml
python - 使用 QML Pyside2 创建 Blender 插件
使用运行 QML 引擎时,Blender 导致异常错误
我需要代码在单独的线程上运行,同时仍与主 Blender 线程通信。我尝试过线程,导致 Blender 不让我访问它的区域。
请帮助我,让我知道可以做什么以及我做错了什么
qml - 在 inputText 中插入带重音的字符
当我的应用程序在葡萄牙语中运行时,我需要插入带有 É、ã 或 â 等重音的字符,但是当我尝试插入时(例如“a + ~”),它不会发生。
问题是因为我使用的是 Qt Virtual Keyboard 但我不知道如何避免它。
代码示例: