草庐IT

qml-qtquick-item

全部标签

c++ - 将 QObject 类公开到 qml 时,在 Qt 中管理内存的正确方法?

我使用C++来编写我的大部分程序逻辑。我喜欢将C++类公开到QML中,以便QML可以使用JS来完成许多复杂的工作。然而,问题来了:如果C++函数返回一个QObject*Q_INVOKABLEQObject*parseJson(constQString&someArguments){returnnewSomeClassExtendsQObject(someArguments);}然后分配给JS变量并使用varresult=exposingCppObj.parseJson("I'mArguments");result.someMemberFunction(...);.....如果我用del

c++ - 如何在 3D 中对 QML 旋转变换进行动画处理和属性插值

这里的代码示例:importQtQuick2.0Item{width:200;height:200Rectangle{width:100;height:100anchors.centerIn:parentcolor:"#00FF00"Rectangle{color:"#FF0000"width:10;height:10anchors.top:parent.topanchors.right:parent.right}}}将产生这个输出:现在我想从这个绿色矩形的中心应用3D旋转。首先,我想在X轴上旋转-45度(弯腰),然后在Y轴上旋转-60度(向左转)。我在侧面使用了以下使用GLM截取的C

c++ - 如何在 QML (Qt) 中离线运行 OpenStreetMap

我在Qt上使用QML来显示OpenStreetMap(使用osm插件),这需要互联网连接。有没有一种方法可以让我做同样的事情但离线运行它?例如,运行我自己的磁贴服务器(但这有多容易)?或者使用可以让我很快完成的库。顺便说一句,我在Ubuntu上运行我的程序。任何关于如何做到这一点的帮助,特别是如果有人可以提供要完成的步骤,我们将不胜感激。谢谢。 最佳答案 我已经按照以下步骤在Qt中离线显示OpenStreetMap(使用QML):在本地主机上构建/运行磁贴服务器。我使用了以下指南:https://switch2osm.org/ser

c++ - 如何使用 QDeclarative 将 QMap 公开给 QML

如何将QMap从C++公开到QML?使用QList我可以使用QDeclarativeListProperty。 最佳答案 您可以将其转换或更改为QVariantMap。在QML中,您可以将QVariantMap实例用作普通的Javascript对象。classMyClass:publicQObject{Q_OBJECTpublic:Q_INVOKABLEQVariantMapgetIntMap(){QVariantMaprval;foreach(QStringkey,m_intMap.keys()){//inthasanimplic

c++ - Qml/Qt/C++ : QQuickView in a QWidget - Need Background Transparency

我试图让我的带有qquickview的容器变得透明,并且只显示QML文件中的元素而没有背景。有没有更好的方法来实现这个?这是相关代码,您可以看到我已经注释掉了向其中添加QML,因此唯一的违规者是包含QQuickView的QWidgetQML将仅使用文本制作类似于Apple的“CoverFlow”的菜单。我只希望它生成的文本可见。目前它有纯白色背景。QQuickView*view=newQQuickView();QWidget*container=QWidget::createWindowContainer(view,this);container->setObjectName("wra

javascript - 如何将一维整数数组从 QML 发送到 C++?

所以我有一个信号:QML:signalqmlSendWorkflowIdsArraySignal(variantworkflowIdsArray)JS:sendToCppWorkflowIdsArray(arrayOfWorkflowIds);C++:QObject::connect(qmlMainContentItemObject,SIGNAL(qmlSendWorkflowIdsArraySignal(QVariant)),&myController,SLOT(qmlToCppWorkflowIdsArraySlot(QVariant)));C++插槽:voidqmlToCppWo

c++ - 部署 Qt QML 编译的可执行文件

所以我有一个简单的应用程序,它使用QML作为我的图形界面,使用C++代码来处理一些逻辑。我一直在寻找一种将QML编译成C++代码并将其链接到我的二进制文件的方法,并在Qt主页上找到了这个页面:http://doc.qt.io/QtQuickCompiler/基本上它说对我所有的QML图形界面文件使用资源系统,并将QML编译器标志添加到我的.pro文件中的qmake配置行,一切都应该顺利进行。据我所知,一切都可以正常编译,但是当我使用Qtwindeployqt.exe工具获取所有依赖文件并在干净的系统上对其进行测试时,我会看到一个小白屏,就好像我的QML文件是未正确加载。我有一个使用“q

c++ - QML Material Design 颜色不准确

我正在尝试使用this上指定的紫色和其他颜色页面,但颜色显示不准确。这是在我的设备和Linux上显示的紫色图像:以下是默认HelloWorld应用程序的相关代码片段:.pro文件:QT+=qmlquickquickcontrols2主要.cpp:#include在intmain(intargc,char*argv[])QQuickStyle::setStyle("Material");主.qml:Material.theme:Material.DarkMaterial.accent:Material.Purple 最佳答案 Mate

c++ - 如何从 QML 访问 QModelIndex 行

我的QML代码中有这个:TreeView{...onExpanded:{console.log("onExpandedcalled",index)}}这是调用时的输出:QModelIndex(1,0,0x5d9f5a0,TreeModel(0x5deae90))如何访问QML代码中的第一个值(1)? 最佳答案 如果您在QML中有一个对象并且您不知道如何访问它的属性,您总是可以使用:Object.keys(obejectInQuestion)。至少对于QModelIndex您为ListModel获取的getterrow()用于属性ro

c++ - 如何在 QML 中创建 Q_GADGET 结构的新实例?

我可以将带有Q_GADGET标记的结构的信号从C++发送到QML。是否可以将这样的结构从QML发送到C++插槽?我的代码在第一步失败:在QML中创建一个实例。此代码在第一行失败...varbs=newBatteryState()bs.percentRemaining=1.0bs.chargeDate=newDate()DataProvider.setBatteryState(bs)...有错误:qrc:///main.qml:34:ReferenceError:BatteryStateisnotdefined我可以将BatteryStatus结构从C++发送到QML,但我想将一个作为单