问题标签 [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.

0 投票
1 回答
582 浏览

qt - 如何在 C++ 端从头开始创建一个新的 QQuickItem 副本,其属性与现有副本相同

我有一个QQuickItem像这样从 C++ 端获取的。

my_item是有效的,并且设置了所有属性。

场景
我有2 个窗口需要QQuickItem交替绘制。我想把它渲染my_item到另一个窗口。只要我将父级设置my_item为另一个窗口,这一切都很好

这需要我setParentItem再次回到my_item的原始窗口,否则它在原始窗口上不可见。这是有效的,但给了我不必要的依赖。相反,我正在尝试创建QQuickItem& 的副本并setParentItem对其进行操作。通过这样复制:

问: 我想做item_copymy_item. 我了解到这QQuickItem是不可复制的。所以,想要设置my_iteminto的所有属性item_copymy_item从而从头开始重建。我怎样才能做到这一点?我应该主要复制哪些属性?宽度,高度,x,y & 还有什么?

有没有一种方法可以将所有有效属性复制到这个新属性中而无需逐一复制?

0 投票
1 回答
289 浏览

qt - 在第二个窗口上渲染 QQuickItem 而不更改其父层次结构

我必须将QQuickItem特定窗口所拥有的渲染到另一个窗口中。基本上MyQQuickItem归window1所有,在window2上渲染。由于某些功能,此切换必须在我的应用程序中反复发生。

我做了以下来实现目标&代码基本上工作正常

代码:

问题:
上述技术在功能上工作正常。但这需要我在将父项从 window1 设置为 window2 并再次返回之间折腾几次。

问题:
还有其他方法MyQQuickItem可以在 2 个窗口之间共享吗?或者是否可以MyQQuickItem在两个窗口上交替显示而无需更改父层次结构

0 投票
0 回答
261 浏览

qt - X11VNC 性能 - QQuickView 与 QQmlApplicationEngine

我正在运行 QML 应用程序并使用 X11VNC 远程查看输出。当 QML 应用程序使用QQmlApplicationEngine时,我只能在 VNC 查看器上看到每秒 2-5 帧,而当我使用时QQuickView,我每秒只能看到 8-10 帧。

由于QQmlApplicationEngine比 更新QQuickView,人们自然会认为它更强大。我看到的行为可能是什么原因?

0 投票
1 回答
728 浏览

c++ - 从 C++ 调用 QML 方法

我想MyMap从我的类中调用一个方法,MyBacklogg当我在该类中没有对象参数时,我该怎么做?

我将收到一个字符串,一个 QByteArray 或一个 QDataStream in MyBacklogg,这取决于哪个效果最好,我想将它们传递给我的 GUI。

主.cpp:

main.qml:

MyBacklogg.cpp:

0 投票
1 回答
1130 浏览

qt - QML组件碰撞测试方法

好吧,可能有许多 QML 程序,如果两个组件相互碰撞,程序员会根据它定义一个动作。在下面这样的程序中,我们想专注于那个碰撞,并尝试知道如何定义一个函数来告诉我们这种碰撞是否发生。

下面的代码是更大程序的一部分。我尝试collision在代码中使用为此调用的函数。到目前为止的问题是它运行得不好。我想知道 QML 中是否有内置函数“或”是否有用于此目的的好代码。

球拍有三个可能与球发生碰撞的面:一个长在前面,一个上面和一个下面。具体问题是,当球从上或下表面与球拍碰撞时,球会进入球拍内部!
我要解决的问题是。我希望当球从任何面击中球拍时,它会反射。

main.qml

Racket.qml

0 投票
0 回答
1175 浏览

c++ - 通过 QWidget::createWindowContainer 替换嵌入在小部件中的 qt 窗口

QWidget我在via中嵌入了一个 QML 窗口QWidget::createWindowContainer()

为了在不隐藏窗口的情况下提供一些重新加载功能,我希望能够替换底层(嵌入)qml 窗口,而不破坏和重新创建父小部件。

到目前为止我尝试的是

我曾经完全删除容器窗口并重新创建它(使用createWindowContainer),这工作得很好,但我想避免一遍又一遍地删除容器小部件。我怎样才能做到这一点?

(请注意,为了代码的简单性,没有指针检查或错误处理,无需对此发表评论:))

0 投票
3 回答
508 浏览

python - QML 图像未显示在应用程序中

我无法在我的应用程序中显示一个简单的图像。这是main.py:

和 basic.qml:

在应用程序窗口中,似乎分配了空间,但没有显示任何内容。[logo_name.jpg 位于 basic.qml 和 main.py 所在的同一文件夹]

0 投票
0 回答
570 浏览

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),但我可以访问它的所有其他属性。

0 投票
1 回答
81 浏览

c++ - 从另一个类调用 QQmlApplicationEngine 时的 TableView 和 QAbstractTableModel

我正在尝试QAbstractTableModel在 cpp 中制作模型并连接到 qml。

这段代码运行良好。

我的模型.h

我的模型.cpp

主文件

main_test.qml

看起来像这样

在此处输入图像描述

但是,如果我稍微更改 main.cpp,列表视图会正常显示,但表格视图不会显示。

主文件

主视图.h

主视图.cpp

它看起来像这样。

在此处输入图像描述

我真的不明白为什么会这样。第二种情况下ListView和TableView有什么区别?以及如何解决它,即在第二种情况下显示数据?预先感谢。

0 投票
1 回答
1065 浏览

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();: