jjzjj

QQuickItem_QML

全部标签

c++ - 将 QML 事件传播到 C++

我想将事件从QML信号处理程序传播到C++过程,但不知道如何传递“事件对象”。看看这种情况,特别注意SomeType。首先,我创建了一个自定义QML项,其中包含一个可以从QML调用的槽:classTool:publicQQuickItem{...publicslots:virtualvoidonMousePositionChanged(SomeType*event);}然后,在QML中,我创建了一个MouseArea和我想要将事件传播到的自定义对象的一个​​实例。MouseArea{hoverEnabled:trueonPositionChanged:{varevent=...tool

c++ - 在 C++ 中扩展 QML ApplicationWindow

如何正确扩展QMLApplicationWindow类型?根据文档,ApplicationWindow实例化了一个QQuickWindow。所以我尝试从QQuickWindow进行子类化并将类型作为MyWindow公开给QML。问题是MyWindow实际上并没有扩展QML类型的ApplicationWindow,因此您没有获得menuBar和toolBar等所有属性。如何在C++中扩展ApplicationWindow并将其公开给QML?这是我目前正在做的事情:classMyQuickWindow:publicQQuickWindow{//...irrelevantadditions}

c++ - 如何在 QML 场景上绘制 3D 线?

我试图将BulletPhysics的调试绘图接口(interface)集成到QML中,所以我必须实现一个drawLine()方法。voiddrawLine(constbtVector3&from,constbtVector3&to,constbtVector3&color);我尝试的是从QQuickItem3D和btIDebugDraw继承了场景中使用的一个项目。在drawLine()中,我将线条添加到成员vector中。在Qt的drawItem()中,我遍历线条并使用OpenGL调用来渲染它们。但是,它们不会出现在屏幕上。如何在3D空间和正确的相机View中绘制线条?voidDebu

c++ - Qt/QML : Text with inline QML elements

我们正在使用QtQuick/QML构建图形用户界面。我们有一些来自数据库的动态多行文本,它们应该显示在应用程序中。目前,我们使用Text元素来显示文本。但是,我们需要一些内联嵌入到文本中的QML组件。为此,来自数据库的文本包含诸如::checkbox|1::之类的占位符,然后应由程序替换和显示这些占位符。在HTML中,这很容易,您只需将内联元素与文本混合即可产生如下结果:但在QML中,这似乎更困难,因为如果没有足够的空间,Text元素不能被分词成两半(文本和容器大小都应该是动态的).我们能想出的最佳解决方案是创建一个Flow布局,每个单词都有一个Text元素,但这似乎太老套了。在HTM

c++ - 将它们传递给 cpp 后如何与 qml 项目值进行交互?

我正在尝试将qml中的项目值获取到我的cpp代码中,从那里我想将这些值添加到CAN消息中并通过CAN总线发送它们.到目前为止,我可以成功地将许多qml项的值和状态获取到我的cpp中。此外,我可以使用静态值将CAN消息传输到CAN总线。但是,其中一些值不应是静态的,而应使用qml中的项目值动态更新。这是backend.h:#ifndefBACKEND_H#defineBACKEND_H#include#includeclassBackEnd:publicQObject{Q_OBJECTQ_PROPERTY(intelemValREADgetElemValWRITEsetElemValNO

c++ - QML 中的附加属性

我可以为所有属性创建自己的附件,例如组件吗?Item{Component.onCompleted:{}//ComponentisattachedtoeveryoneItems} 最佳答案 您可能无法将属性附加到不是您创建的项目或组件。但是你为什么要这样做呢?相反,您可以考虑使用信号和全局属性。对于可以从任何地方访问的全局属性,您可以设置声明性View的根上下文的上下文属性。。p>即,QmlApplicationViewerviewer;MyPropertyClassmyProp;viewer->rootContext()->setC

c++ - C++对象属性的QML属性

我是QML新手,在访问C++对象的property.property时遇到问题:C++、frequency和station都是Qt元类型注册对象:CStation*station=newCStation(...);//QObjectCFrequency*frequency=newCFrequency(..);//QObjectQQmlContext*qmlContext=viewer.rootContext();qmlContext->setContextProperty("myatcstation",station);qmlContext->setContextProperty("m

c++ - Qt5 - 在 QML TableView 中显示动态数据模型

我正在为GUI开发跟踪窗口。我在QML端使用TableView元素来显示将不断更新的数据。我怎样才能用数据填充这个元素?元素的数量以及每个元素的数据每隔几毫秒就会发生变化。我认为信号/槽实现是理想的,当数据发生变化时,产生一个信号来触发槽函数来更新TableView中显示的值?类似的东西。提前致谢!主.qmlimportQtQuick.Controls1.1importQtQuick.Layouts1.1importQtQuick.Dialogs1.1importQtQuick2.1....TableView{anchors.fill:parentid:traceTable//tabl

c++ - 使用 QML 绘制图形项目的最佳方式是什么?

在我的QML应用程序中,我需要常见的QGraphicsScene和QGraphicsObject可能性,例如检测碰撞、“可移动”和“可选择”标志、拖放等。我应该从QQuickItem继承类还是使用QMLCanvas?当然,我想编写更少的代码并选择“QML方式”。 最佳答案 对于QML中的碰撞检测,您可以使用Box2DQML插件。它有很多好的功能,可以从here下载。.您也可以自己实现碰撞检测。例如通过检查这个:Math.sqrt((ball1.x-ball2.x)*(ball1.x-ball2.x)+(ball1.y-ball2.y

c++ - QQuickItem 派生类的高 DPI 缩放

我在我的应用程序中将QtQuickControls2与QQuickItem派生类一起使用。在我设置AA_EnableHighDpiScaling属性后,所有QQuickControls2组件在我的智能手机上看起来都正确,但我的自定义类的对象缩放不正确。这是没有HighDpi缩放和最小缩放的应用程序(它的工作方式):这是最小缩放比例的:似乎在第二个屏幕上对象被缩放太多,我可以看到我用QPixmap或QImage绘制的所有纹理的方形像素。但是,我从外部存储器和QSGGeometryNode等节点加载的图像看起来是正确的。我可以只关闭一个特定QQuickItem的缩放吗?如果不是,我应该设置