qml 相关问题

QML(Qt建模语言)是一种声明性语言,允许用户界面根据其可视组件以及它们如何相互作用和相互关联来描述。它是一种高度可读的语言,类似JSON的语法,支持命令式JavaScript表达式和动态属性绑定。它可用于构建流体动画用户界面,可以连接到任何后端C ++库。

带有 QML 和 VTK9 的 PySide6

我正在尝试使用 PySide6 和集成的 VtkRenderWindow 获取 Qml 应用程序的运行示例。 我尝试了 Qml-VTK-Python 但生成的有问题 来自 pyside6 的 rs_qml.py...

回答 1 投票 0

实例化器,以及动态创建的组件

我在 QGroundMap 覆盖方面遇到问题。我有一个自定义 QGround 小部件,我需要在 QGroundMap 上动态绘制多个 MapPolyline 对象,但唯一的方法是注入...

回答 1 投票 0

如何在QML中访问QPointer的成员?

我的项目使用Qt和QML。 我想绑定一个可以是一个类的多种类型的属性。 例如: 类基:公共 QObject { Q_OBJECT 民众: Q_PROPERTY(QVariant myVar 读取 myVar NOT...

回答 1 投票 0

动态重新翻译 Qt Quick UI

我想动态重新翻译 Qt Quick GUI 字符串。 有一种侵入性技巧可以重新翻译受影响的字符串属性,其有关更改的通知无法集中。 有可能吗...

回答 2 投票 0

未捕获的引用错误:QWebChannel 未定义

我有一个 QWebEngineView 可以加载像 http://google.com 这样的页面,我想将键盘加载到输入框,所以我应该使用 QWebChannel 和 WebEngineScript。 我为网络频道做了所有的事情:我...

回答 2 投票 0

QTimer 完成阻塞任务后不会立即触发

背景: 在我们的嵌入式QT应用程序(基于ARM处理器)中,有一个Qtimer每20ms就会超时。 更新用户界面对象是在超时处理程序内完成的

回答 1 投票 0

QML 从 SplitView 读取和设置 SplitHandle 中的属性

在下面的例子中,如何读取和设置矩形1和矩形2中的虚拟属性?在这种情况下,我不确定如何从加载的组件中读取属性。 导入QtQuick 2.15 导入 QtQuick。

回答 1 投票 0

pyside6中qml和python没有联系

我正在编写一个大型程序,遇到了奇怪的错误。 在 Google 中徘徊,我发现了一个无法执行预期功能的简单程序。 当您按下按钮时,数字

回答 1 投票 0

在 QML 中转储或序列化对象

console.log() 不会序列化 QML 对象。我想知道如何做到这一点?

回答 1 投票 0

在C++代码中使用qml类型作为QWindow

我在qtcreator中创建了一个MainWindow:public QMainWindow和一个qtquick ui文件(用于工具箱)。我希望工具箱在主窗口中显示为浮动子窗口。我正在尝试使用 QMdiArea...

回答 2 投票 0

QT Creator Design View 显示布局正确,但编译后的应用程序完全不同

我有一个在 QT Creator 中编写的非常基本的 QML 文件。当我在“设计”选项卡中打开它时,它看起来是正确的。当我编译并运行该应用程序时,它完全不同且不正确。 设计...

回答 2 投票 0

SoundEffect 无法在 Android 上播放 WAV 音效

我最近在我的 Qt 应用程序中添加了对音效重放的支持,并将其移植到 Android 平台。 为了播放我的声音文件,我使用了 MediaPlayer QML 组件,它能够...

回答 1 投票 0

Qt qml 按钮悬停颜色

我有一个自定义的 QML 按钮,如下所示。 导入QtQuick 2.15 导入 QtQuick.Controls 2.15 按钮{ id: 破折号 宽度:155 身高:40 隐式宽度:155 隐式高度:40 t...

回答 3 投票 0

使用 Javascript 数组模型的 Repeater 在 Qt 5.12 中造成性能问题

我正在使用: Qt 5.12 在我的目标设备上构建的 IMX 587 处理器。 我面临一些性能问题,因为转发器使用 JavaScript 数组模型,那么每当任何项目发生变化时,...

回答 1 投票 0

如何围绕网格旋转相机

使用 Qt/QML/C++,我尝试构建一个非常基本的 3D 场景来围绕网格对象旋转相机。 主程序 #包括 #包括 使用 Qt/QML/C++,我尝试构建一个非常基本的 3D 场景来围绕网格对象旋转相机。 主.cpp #include <Qt3DQuickExtras/qt3dquickwindow.h> #include <Qt3DQuick/QQmlAspectEngine> #include <QGuiApplication> #include <QtQml> int main(int argc, char **argv) { QGuiApplication app(argc, argv); Qt3DExtras::Quick::Qt3DQuickWindow view; // Expose the window as a context property so we can set the aspect ratio view.engine()->qmlEngine()->rootContext()->setContextProperty("_window", &view); view.setSource(QUrl("qrc:/main.qml")); view.setWidth(800); view.setHeight(600); view.show(); return app.exec(); } main.qml import Qt3D.Core 2.0 import Qt3D.Render 2.0 import Qt3D.Input 2.0 import Qt3D.Extras 2.0 Entity { id: sceneRoot Camera { id: camera projectionType: CameraLens.PerspectiveProjection fieldOfView: 25 aspectRatio: _window.width / _window.height nearPlane : 0.1 farPlane : 1000.0 position: Qt.vector3d( 0, 0.0, 20.0 ) upVector: Qt.vector3d( 0.0, 1.0, 0.0 ) viewCenter: Qt.vector3d( 0.0, 0.0, 0.0 ) } OrbitCameraController { camera: camera } components: [ RenderSettings { activeFrameGraph: ForwardRenderer { clearColor: Qt.rgba(0, 0.5, 1, 1) camera: camera } }, InputSettings { } ] PhongMaterial { id: carMaterial } Mesh { id: carMesh source: "resources/aventador.obj" } Entity { id: carEntity components: [ carMesh, carMaterial ] } } 如何让相机围绕网格对象旋转? OrbitCameraController 允许沿着轨道路径移动相机。要使其围绕网格旋转,您可以将相机的 viewCenter 设置为网格的位置(包含网格的实体的变换的平移)并使用键盘/鼠标来旋转它。 所以添加: Transform{ id: carTransform translation: Qt.vector3d(5.0, 5.0, 5.0) //random values, choose your own } 并将变换添加到实体的组件中。 将相机的viewCenter更改为 viewCenter: carTransform.translation 您应该使用鼠标或键盘来执行此操作。 当您使用 OrbitCameraController 或 FirstPersonCameraController 你无法控制我们。我使用这个 code 而不是 OrbitCameraController。 Entity{ id: root property Camera camera; property real dt: 0.001 property real linearSpeed: 1 property real lookSpeed: 500 property real zoomLimit: 0.16 MouseDevice { id: mouseDevice sensitivity: 0.001 // Make it more smooth } MouseHandler { id: mh readonly property vector3d upVect: Qt.vector3d(0, 1, 0) property point lastPos; property real pan; property real tilt; sourceDevice: mouseDevice onPanChanged: root.camera.panAboutViewCenter(pan, upVect); onTiltChanged: root.camera.tiltAboutViewCenter(tilt); onPressed: { lastPos = Qt.point(mouse.x, mouse.y); } onPositionChanged: { // You can change the button as you like for rotation or translation if (mouse.buttons === 1){ // Left button for rotation pan = -(mouse.x - lastPos.x) * dt * lookSpeed; tilt = (mouse.y - lastPos.y) * dt * lookSpeed; } else if (mouse.buttons === 2) { // Right button for translate var rx = -(mouse.x - lastPos.x) * dt * linearSpeed; var ry = (mouse.y - lastPos.y) * dt * linearSpeed; camera.translate(Qt.vector3d(rx, ry, 0)) } else if (mouse.buttons === 3) { // Left & Right button for zoom ry = (mouse.y - lastPos.y) * dt * linearSpeed zoom(ry) } lastPos = Qt.point(mouse.x, mouse.y) } onWheel: { zoom(wheel.angleDelta.y * dt * linearSpeed) } function zoom(ry) { if (ry > 0 && zoomDistance(camera.position, camera.viewCenter) < zoomLimit) { return } camera.translate(Qt.vector3d(0, 0, ry), Camera.DontTranslateViewCenter) } function zoomDistance(posFirst, posSecond) { return posSecond.minus(posFirst).length() } }} 创建一个新的 qml 类并调用它,例如 SOrbitCameraController 或任何您想要的东西,然后使用它而不是 OrbitCameraController 并将相机带到此类。 我知道这是一篇旧帖子,但自从我找到了答案,这也难倒了我,这是我调整的内容: 我发现我需要做的就是将向量设置为零,我用 pyqt 编写,所以我的看起来像这样: camera.setUpVector(QVector3D(0.0, 0.0, 0.0)) 原因是在此之后我能够锁定鼠标右键控件并使用鼠标左键控件围绕网格旋转。 我发现了这个有用的信息: Q_INVOKABLE void tiltAboutViewCenter(float angle); Q_INVOKABLE void panAboutViewCenter(float angle); Q_INVOKABLE void panAboutViewCenter(float angle, const QVector3D &axis); Q_INVOKABLE void rollAboutViewCenter(float angle); 这就是你想要的。

回答 4 投票 0

如何使用 qml 将多个纹理图像或一个图像应用到 qt 6 中的立方体中?

你好,我正在使用 QTCreator 和 qml 学习 6.4.2 版本中的 Qt 3d,在研究了官方 qt 文档,甚至在堆栈溢出中,我没有找到一种方法将多个图像作为

回答 1 投票 0

Repeater Delegate 无法访问列表模型中的属性

从此链接描述了中继器问题。 @Stephen Quan,根据您的建议将代码修改为 ListModel。 列表模型{ id:列表模型 } 函数handleModelChanged() { 委托模型....

回答 1 投票 0

在没有 IDE 的情况下使用 CMake 构建 QML 应用程序时,QQmlApplicationEngine 无法加载组件

我正在研究QML应用程序。目前,该应用程序仅由不同的 QML 文件和一个仅包含 main 函数的 main.cpp 文件组成。稍后,我还将向其中添加业务逻辑。 ...

回答 1 投票 0

如何访问在单独的 QML 文件中定义的变量?

我无法访问单独文件中的变量。 下面是我的代码的一部分: // 样式.qml 导入QtQuick Qt对象{ 属性 int mainWindowWidth: 1024 属性 int mainWindowHeight: ...

回答 1 投票 0

如何在 PyQt5 的弹出窗口中动态生成和显示 QML 元素?

我目前正在开发一个包含 QML 的 PyQt5 应用程序。应用程序从配置文件 (configuration.yaml) 动态生成 QML 代码。然后发送生成的 QML 代码...

回答 1 投票 0

© www.soinside.com 2019 - 2024. All rights reserved.