问题标签 [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.
qt - 如何在 C++ 端从头开始创建一个新的 QQuickItem 副本,其属性与现有副本相同
我有一个QQuickItem
像这样从 C++ 端获取的。
my_item
是有效的,并且设置了所有属性。
场景
我有2 个窗口需要QQuickItem
交替绘制。我想把它渲染my_item
到另一个窗口。只要我将父级设置my_item
为另一个窗口,这一切都很好
这需要我setParentItem
再次回到my_item
的原始窗口,否则它在原始窗口上不可见。这是有效的,但给了我不必要的依赖。相反,我正在尝试创建QQuickItem
& 的副本并setParentItem
对其进行操作。通过这样复制:
问:
我想做item_copy
和my_item
. 我了解到这QQuickItem
是不可复制的。所以,想要设置my_item
into的所有属性item_copy
。my_item
从而从头开始重建。我怎样才能做到这一点?我应该主要复制哪些属性?宽度,高度,x,y & 还有什么?
有没有一种方法可以将所有有效属性复制到这个新属性中而无需逐一复制?
qt - 在第二个窗口上渲染 QQuickItem 而不更改其父层次结构
我必须将QQuickItem
特定窗口所拥有的渲染到另一个窗口中。基本上MyQQuickItem
归window1所有,在window2上渲染。由于某些功能,此切换必须在我的应用程序中反复发生。
我做了以下来实现目标&代码基本上工作正常。
代码:
问题:
上述技术在功能上工作正常。但这需要我在将父项从 window1 设置为 window2 并再次返回之间折腾几次。
问题:
还有其他方法MyQQuickItem
可以在 2 个窗口之间共享吗?或者是否可以MyQQuickItem
在两个窗口上交替显示而无需更改父层次结构?
qt - X11VNC 性能 - QQuickView 与 QQmlApplicationEngine
我正在运行 QML 应用程序并使用 X11VNC 远程查看输出。当 QML 应用程序使用QQmlApplicationEngine
时,我只能在 VNC 查看器上看到每秒 2-5 帧,而当我使用时QQuickView
,我每秒只能看到 8-10 帧。
由于QQmlApplicationEngine
比 更新QQuickView
,人们自然会认为它更强大。我看到的行为可能是什么原因?
c++ - 从 C++ 调用 QML 方法
我想MyMap
从我的类中调用一个方法,MyBacklogg
当我在该类中没有对象参数时,我该怎么做?
我将收到一个字符串,一个 QByteArray 或一个 QDataStream in MyBacklogg
,这取决于哪个效果最好,我想将它们传递给我的 GUI。
主.cpp:
main.qml:
MyBacklogg.cpp:
qt - QML组件碰撞测试方法
好吧,可能有许多 QML 程序,如果两个组件相互碰撞,程序员会根据它定义一个动作。在下面这样的程序中,我们想专注于那个碰撞,并尝试知道如何定义一个函数来告诉我们这种碰撞是否发生。
下面的代码是更大程序的一部分。我尝试collision
在代码中使用为此调用的函数。到目前为止的问题是它运行得不好。我想知道 QML 中是否有内置函数“或”是否有用于此目的的好代码。
球拍有三个可能与球发生碰撞的面:一个长在前面,一个上面和一个下面。具体问题是,当球从上或下表面与球拍碰撞时,球会进入球拍内部!
我要解决的问题是。我希望当球从任何面击中球拍时,它会反射。
main.qml
:
Racket.qml
:
c++ - 通过 QWidget::createWindowContainer 替换嵌入在小部件中的 qt 窗口
QWidget
我在via中嵌入了一个 QML 窗口QWidget::createWindowContainer()
。
为了在不隐藏窗口的情况下提供一些重新加载功能,我希望能够替换底层(嵌入)qml 窗口,而不破坏和重新创建父小部件。
到目前为止我尝试的是
我曾经完全删除容器窗口并重新创建它(使用createWindowContainer
),这工作得很好,但我想避免一遍又一遍地删除容器小部件。我怎样才能做到这一点?
(请注意,为了代码的简单性,没有指针检查或错误处理,无需对此发表评论:))
python - QML 图像未显示在应用程序中
我无法在我的应用程序中显示一个简单的图像。这是main.py:
和 basic.qml:
在应用程序窗口中,似乎分配了空间,但没有显示任何内容。[logo_name.jpg 位于 basic.qml 和 main.py 所在的同一文件夹]
python - PyQt5 QML 更新/刷新属性更改视图?
好的,所以我有这个简单的代码,它获取对象“button_name”的属性“Text”并对其进行修改。它确实有效,但只有当视图(ApplicationWindow /engine)处于活动/聚焦状态并且只有当我移动鼠标时。如果视图失焦或鼠标未悬停在应用程序上,则文本不会在屏幕上更新。(尝试使用其他属性,如“可见”,它的行为方式相同。
和 basic.qml:
我确实找到了“dataChanged()”,但它似乎不适用于 QQmlApplicationEngine,我正在研究 clearComponentCache(),但这也没有做任何事情。
我也尝试添加onTextChanged: console.log("Text has changed to:", text)
到 Button 并且没有打印任何内容(即使在视图中更新了文本之后)
我也无法访问 Button 的属性“Material.background”(它返回 NoneType),但我可以访问它的所有其他属性。
c++ - Dynamically created Custom QML object not visible
I have a custom QML item called "Cell.qml" which I'd like to insert dynamically in my root window and make it visible. I also tried changing the z property, but I couldn't fix it, the object is still invisible (even tough the output of root->dumpObjectTree() says the object exists as a child of the root window)
This is the result after executing the code
main.cpp
main.qml
Cell.qml
Output of root->dumpObjectTree();: