问题标签 [qtquick2]
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 - QML - 跟踪组件的全局位置
我想跟踪一个对象的全局位置(或相对于它的一个祖先)并将其绑定到其他项目的位置。
我正在考虑使用mapFromItem
如下:
这种方法的问题是mapFromItem
被评估一次并且不会随着其中一个参数的更新而更新。此外,映射有时会返回由我无法在代码中跟踪的偏移量更改的新位置(但这不是手头的问题)。
我的第二个想法是通过实现一个函数来计算全局位置,该函数将递归地求和偏移量,在提供的祖先处停止(类似于calculateOffsetFrom(ancestor)
)。仍然这只是一个函数,就我而言,它不会随着祖先位置的变化而重新评估(除非在该函数中,我会将调用它绑定到onXChanged
每个一路上的祖先,这似乎是一个肮脏的解决方案)。
所以最后我为我打算跟踪的对象添加了属性,然后绑定到它们:
但是好吧......是的......这个根本没有规模,而且很丑陋。
有谁知道如何以更清洁的方式解决这个问题?
编辑:
就我而言,在这种情况下我不能使用锚。该SomeObject
组件是一个自定义组件,从一个点到另一个点绘制一条贝塞尔曲线(它将连接两个TrackedObjects
)。为此,我需要坐标之间的差异。如果我是正确的,锚不提供任何计算它们之间距离的方法。
qml - 何时使用 Qt Quick 2 中的哪些类以及如何使用?
我正在尝试使用 Qt 5.1 和 Qt Quick 2 编写游戏,它是新的(更快的)图形引擎。我已经阅读了几个小时的文档,但如果我想在屏幕上移动位置由 C++ 代码确定的项目,我仍然无法弄清楚要使用哪些类。
在 QGraphics 中很简单:我创建了一个 QGraphicsScene 的实例,将 QGraphicsItem 的任何继承者添加到它,然后创建一个 QGraphicsView 的实例,它是一个 Widget 并显示所有项目及其更改。我将 QGraphicsItem 连接到信号以进行更改。
在 Qt Quick 2 中,我首先阅读了
- 仅使用 QML 和 Javascript 的官方示例,
- 然后我想我找到了 QGraphics 的等价物,即 QDeclarativeEngine、QDeclarativeComponent 和 QDelcarativeView,并准备使用 Q_PROPERTY 创建自定义 QML 元素
- 更新:刚才我发现 QDeclarative* 是 Qt Quick 1 而 QQml* 是等效的 Qt Quick 2 前缀。
- 但后来我也发现了 QQuickItem、QQuickWindow、QSGNode 等。
- 有人可以给我一个基于 Qt Quick 2 的基本示例,并且画布上的图像通过从 C++ 编写的常规 QObjects 发送的信号移动吗?
- 你能帮我对我提到的所有课程进行分类吗?我什么时候用?
qml - Qt Quick 2 场景图是否与 EGLFS 上的 vsync 同步?
我正在研究 Qt 5.1 中的 Qt Quick 2。很酷。但是,我不了解场景图功能。如果我只是创建 Flickable,将一堆图像放入其中,并在带有 EGLFS 后端的嵌入式设备上的 QQuickView 中显示 - 我是否使用场景图?
如果是,为什么我看到撕裂 - 场景图应该是垂直同步的?
如果不是 - 我应该怎么做才能将它与 Flickable 一起使用?或者这是否意味着我应该从头开始实施?
我的应用程序基本上允许浏览无穷无尽的生成图像。
qt - QML - MouseArea - 传播 onPositionChanged
是否可以将 's positionChanged 事件传播MouseArea
到底层事件?
我尝试将 to 设置mouse.accepted
为false
最顶层的任何现有信号处理程序,并将 toMouseArea
设置propagateComposedEvents
为true
. 这些都不起作用(尽管我对不起作用并不感到惊讶,propagateComposedEvents
因为文档说它只传递事件,如clicked
,doubleClicked
和pressAndHold
)。
facebook-graph-api - Facebook 桌面应用中的 OAuth 实现设计
我对如何从 Facebook 实现 access_token 检索感到困惑。这就是我的想法:
- 一个 OAuthorizer 类,负责 OAuth 身份验证。它会启动一个 WebView 窗口,该窗口将要求用户对我的应用程序进行身份验证。成功认证后,此类将存储并提供 Facebook 提供的短期用户 access_token。此类的 authorize() 方法必须启动 QML 窗口,因此涉及一些 UI 代码。
- TokenService 类包含根据短期用户 access_token 检索不同类型的 access_token 的方法——如长期用户 access_token、page_token 等)这将是一个纯 C++ 类,无需处理任何 QML 组件。
这是代码的粗略草图。请注意,它可能在语法上不正确——我是即时写的。
我感觉不好的部分是 OAuthorizer 类。它不可避免地包含与 UI 相关的代码,以便启动 QML 窗口。这是一个好主意/设计吗?
所以我认为这个设计有很大的缺陷。我会欢迎一个全新的,如果更好的设计以及对此的改进。
qtquick2 - db.changeVersion 没有按预期工作
我正在尝试为 Ubuntu Touch 升级应用程序中的数据库。我使用 QtQuick.LocalStorage 2.0。
当我调用 db.changeVersion 时,它可以工作,但 db.version 在应用重新启动之前不会改变。
如何在不重新启动应用程序的情况下拥有新的 db.version?
javascript - 将元素添加到带有动画的中继器
我有一个中继器,它的元素在创建时是动画的。
如果我在前一个元素的动画完成后向模型添加一个元素,那么一切正常。但是如果我之前添加一个元素,它就不起作用了。例如,如果我有一把能射出子弹的枪,如果我等到子弹动画结束,一切正常。但是如果我想在第一个结束之前再射一颗子弹,第一个消失,我只看到第二个的动画。
我应该怎么做才能看到所有的动画?
qt - 根据 QtQuick 2.0 中的属性查找 ListModel 的特定元素
我有ListModel
一个 objectId 角色(整数和唯一)。我想查询模型以查找具有特定 objectId 的元素的其他属性。我怎样才能做到这一点?
qt - 如何使用 QML 在父 MouseArea 中包含子鼠标悬停事件?
我想在 QML 中实现以下场景。
这是ListView
元素的示例/简化委托:
但我有一个问题MouseArea
。
内部(actionButton)对于事件MouseArea
不能正常工作。entered
当鼠标进入动作按钮时,外部MouseArea
触发exited
事件。
我的代码有什么错误吗?更一般地说,我如何在 QML 中实现这样的场景?
qt - QML - 寻址祖先
我有一个容器,它在运行时被动态创建的组件填充。这些元素中的每一个(我们称它们为DynamicObject
s)都有一个子元素树(Node
s),也是动态创建的。更重要的是,Node
组件可以相互嵌套(如树结构)。
让容器将id
参数设置为"main_container"
并且每个容器都将DynamicObject
其设置为"dynamic_object"
。
每当我尝试main_container
从任何嵌套Node
元素中解决问题时,它都可以正常工作。问题是当我尝试dynamic_object
从根以外的任何Node
其他人(那个是 的直接后代/孩子dynamic_object
)中解决时。结果是:
ReferenceError:动态对象未定义
我的问题是:这种行为背后的原因可能是什么?它与这些对象是动态创建的事实有关吗?(这是我的第一个想法,因为我总是可以解决它,main_container
并且它是在 qml 代码中静态声明的)。
代码示例:(如果有任何遗漏,请在评论中告诉我)