问题标签 [qqmlcomponent]

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 回答
903 浏览

qt - 如何将具有自定义属性的组件移动到 QML 中的单独文件

我有一个语言选择列表的代表。列表中的每个项目都包含一个图标和文本。我想将组件定义移动到不同的文件,并提供当前由 IMGDIR 定义的字符串作为属性。

只需将下面的整个文本移动到单独的 LandDelegate.qml 文件中,并将其包含为:

不起作用。

下面是组件的声明。

0 投票
1 回答
1997 浏览

qt - QML 的 Component 和 Instantiator 的区别?

QML 类型ComponentInstantiator似乎做类似的事情;按需创建 QML 对象,而不是在解析其定义时。 那么有什么区别呢? 为什么我要使用其中一个?

0 投票
1 回答
404 浏览

qt - QML:未在单元测试中调用信号

我正在编写一个ScriptProcess用于 QML 的 C++ 类,它充当子进程的接口。所述子进程加载脚本,然后按需执行功能。当您调用函数时,结果(无论是值还是异常)通过信号异步返回。

简而言之,我执行以下操作:

  1. 对于每个测试,打开辅助进程并从文件加载脚本。这是通过使用通过属性Component给出的脚本实例化 a 来完成的。ScriptProcess.code
  2. 运行测试。
  3. 测试完成后,终止进程并删除管理它的对象。

我的问题是SignalSpy被叫exceptionSpy没有被触发;exceptionSpy.count总是零,我不知道为什么。 为什么会这样?我是在滥用SignalSpy还是Component

0 投票
1 回答
783 浏览

qt - 退出鼠标区域时无法取消拖动

我有一个滑块和一个用于在滑块上滑动的图像,如下所示。

mouseArea 看起来像这样:

当我按住 sliderImage 并将其滑动到滑块区域之外时,我想取消拖动。拖动区域应限制在鼠标区域。如果我们移出鼠标区域,我想取消拖动。但是 Drag.cancel() 并没有取消拖动。有什么办法可以取消拖拽吗?

0 投票
1 回答
1098 浏览

qt - 无效的分组属性访问

在这个 qml 代码中:

PictureBox来自PictureBox.qml系统文件的方式是这样的:

运行qml,我在标题中有错误。我需要使用PictureBox.qml,但我无法更改它。如何覆盖PictureBox.qml图标的默认高度值?

0 投票
1 回答
1398 浏览

c++ - QML 错误:qrc:/Main.qml:24 模块“系统”未安装

我是 QML 的新手,我有一个项目。在我的一个目录中,我有一个/imports/system/qmldir文件,其中有以下代码:

在我的源文件中我有

并且错误说没有安装模块系统。

你能告诉我安装模块的步骤或流程吗?

0 投票
3 回答
992 浏览

c++ - 从 C++ 设置 GridView 模型属性而不设置上下文

我正在尝试通过调用从 C++设置modelQML 的属性。GridView
QQmlProperty::write(gridview, "model", QVariant::fromValue(objlist));

gridview设置正确,我可以从 C++ 修改属性,当我将其设置为具有 6 个条目的 QList 并从我得到的 QML 打印它们时
qml: model = item(0x30617b50), Item(0x30617b90), Item(0x30617bd0), Item(0x30617c10), Item(0x30617c50), Item(0x30617cd0),尽管没有显示模型。

Qt 文档建议调用

QQmlContext *ctxt = view->rootContext(); ctxt->setContextProperty("gridModel", QVariant::fromValue(objlist));

然后使用 QML 设置属性,model: gridModel但这并不真正适合我的需要。它工作正常,只要设置了属性,就会显示正确的数据。当我从 QML 打印变量时,输出是
qml: model = [object Object]设置上下文属性和设置对象属性之间肯定存在差异,但我不知道如何解决这个问题。

0 投票
3 回答
2772 浏览

qt - 如何制作一些可重用的 QML 对象,它可以注入另一个 QML 对象?

如何制作一些可重用的 QML 对象,它可以注入另一个对象?

我曾经尝试过使用Component& Loader,但似乎不是我想要的。(它仍然封装了整个 QML 类型,缺乏弹性,难以重用)

使用示例:

Card.qml

main.qml

0 投票
2 回答
1422 浏览

c++ - 如何在 C++ 端获取有效的 QQuickItem 实例

好吧。我已经搜索了很多,但还没有一个好的解决方案。我是新手Qt。我有一堂课是QQuickItem这样的,

qmlRegisterType在我的旁边做一个这样的main.cpp注册,qml

qmlRegisterType< MyQuickItemClass >("MyQ​​uickItemClass", 1, 0, "MyQuickItemClass");

到这里为止一切都很好。但是->我想在 MyQuickItemClass 中设置一个对象实例和一些属性,其中还有一些 C++ 逻辑,然后将MyQuickItemClass对象传递给qml. 或者,MyQuickItemClass从 Qml 获取一个有效的实例。如何从C++ 端获取 vlid 实例MyQuickItemClass对象实例?QMLmain.cpp

我尝试从此处的链接中进行以下学习。但是这种技术会创建两个独立的MyQuickItemClass. 一个来自QML,一个来自c++侧面。因此对我不起作用。

以下是我经过大量搜索后尝试执行此操作的方法。

但是,执行上述操作会MyQuickItemClass调用两次的构造函数。cpp当我创建一个对象时,一次是从侧面,一次是从侧面qml。通过在构造函数中放置断点来验证这一点MyQuickItemClass。结果,我在程序运行时someCppClassObject设置的内部为空。因为 qml 已经对实例化MyQuickItemClass进行了最后调用,因此忽略了我在.MyQuickItemClassMyQuickItemClassmain.cpp

这是我的qml代码MyQuickItemClass

这是 C++ 类,其对象需要设置为MyQuickItemClass.

请注意,我需要保持MyQuickItemClassQQuickItem. 请建议...

0 投票
1 回答
456 浏览

qt - 如何在 qml 中使用加载表单中的鼠标单击区域?

下面是我的代码片段,我正在使用动态对象创建方法加载 qml ui 现在我必须实现驻留在加载文件中的 mousearea,任何人都可以帮我这样做