问题标签 [qt-quick]
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 的显示中删除/移除屏幕/页面?
我有一个Loader
使用它来加载多个屏幕/页面。
我有大约 10 个 QML 屏幕/页面,我在加载器中一一加载鼠标事件。
在某些屏幕上,我需要使用QWidget::setMask()
功能设置透明度以使屏幕/页面的某些部分变为透明并在屏幕上打孔。
我正在使用屏幕QWidget::setMask()
上的rootObject
CPP代码设置掩码。Loader
QWidget::setMask
工作正常,但蒙版区域显示以前加载的屏幕/页面。
所以我有一个问题,是Loader
Loader
如文档http://doc.qt.nokia.com/4.7-snapshot/qml-中所述,在加载新屏幕/页面之前,元素是否正确地从显示器中删除/删除了加载的组件加载器.html。
还有两个函数命名Component.onDestroyed
和Component.onDestruction
当我在 LoaderonDestruction
事件中加载新屏幕/页面时,会为 Loaded 屏幕触发。
一旦我们在加载器中加载新页面,我想从显示器中完全删除/销毁屏幕/页面。我还尝试设置先前加载的屏幕的可见性和不透明度,但我仍然能够在蒙版区域中看到先前加载的屏幕/页面。
如果我设置了加载器source = ""
,sourceComponent = undefined
然后我也可以在加载器中看到之前加载的页面,它不会刷新屏幕。前一页被破坏,但不会从显示中清除/移除。
应该是什么原因?
qt - QML:渲染 qml 屏幕时出现问题
在其中一个开发板上渲染 QML 屏幕时遇到问题
在某些屏幕上,我有 throbber gif 图像,我可以在其中看到屏幕的背景颜色,如图所示。
在某些屏幕上,我有通过 JavaScript 更新的列表视图,由于我无法在列表视图元素中看到更新的图像/文本,因此它没有生效。
这是与刷新屏幕有关的某种问题吗?
在 IX86 上使用 QML 编译时,相同的代码在 Ix86 上运行良好。
qt - QML:如何将动态创建的组件设置为加载器
我正在使用以下代码创建新的 QML 屏幕。
我想将此组件设置为加载程序。
我试过用Loader.sourceComponent = newObject;
它有效,但它给了我以下错误。
是否有任何解决方法。
谢谢。
qt - Qt QML C++ QList 结构体作为自定义 ListView 模型
我在我的项目中拥有的是包含结构元素列表的二进制文件:
从文件中读取数据后,我将所有读取值存储在类的以下字段中:
我确实使用以下声明将此列表公开给 QML:
其次是getter和setter方法。
每次读取文件时,“setEntries”方法用于设置向量并发出信号。
QML 中的列表视图具有附加到模型的 Q_PROPERTY FileContents:
如何访问保存在结构列表中的数据并在 QML 中显示?
更新: 根据您的建议,我稍微更改了代码,现在可以正常编译了。创建了以下类:
更新 2 好的,经过更多分析,我设法找到了可行的解决方案。关于上面的 ListView 声明,它已更新为当前状态(通过引用传递结构不起作用,我必须使用按值复制)。
这两个答案在某种程度上都有帮助,但由于只能接受一个答案,我会接受 Radon 写的第一个答案。谢谢两位指导!
qt - QML:如何在 QML 中销毁或停止 workerscript
我正在尝试WorkerScript
用于在 QML 中加载列表模型元素。但是一旦我们完成更新,我们
怎么能停下来呢?
有什么方法可以破坏或停止? WorkerScript
WorkerScript
c++ - QML 翻译
我尝试在 QML 中使用翻译。我打开了一个新项目 QtQuick 项目,我选择了 QtQuick Componenets for Symbian 作为 QtQuick Application Type。Qt Creator 创建了一个包含所有标准文件(main.cpp、main.qml、mainpage.qml...)的应用程序源代码树
MainPage.qml 非常简单:
我的 main.cpp 文件会像这样处理 QTranslator 的实现:
然后我运行 lupdate mainpage.qml -ts inter_en.ts ,我使用 linguist 翻译了 POSIX 表达式“Hello world!” 其他东西只是测试它正在翻译。然后我用语言学家创建了 inter_en.qm 文件。
但是当我在模拟器上运行应用程序时,我没有得到“Hello world!” 已翻译,尽管翻译器已成功加载(我在 qDebug 中得到“翻译:真”)。
我确信翻译器工作正常,因为当我使用 QPushButton 取消部分代码时,(为此我再次重复 lupdate 和语言学家的事情),然后是“Hello world!” QPushButton 中的表达式被正确翻译。
只有 QmlApplicationViewer 和 QML 文件没有正确执行翻译。有什么问题吗??????
谢谢
更新
我发现以下内容: MainPage.qml 作为可重用组件导入 main.qml。如果我在 main.qml 中使用 qsTr(),那么文本会在 main.qml 中正确翻译。但是 MainPage.qml 中的文本翻译不正确。我猜是因为将其作为可重用组件导入。任何意见?经验?
UPDATE2 - 解决方案
翻译文件需要区分大小写:
qt - symbian上的qt翻译
我有一个使用 QTranslator 的简单 Qt 应用程序。部分代码如下:
当我构建我的项目并在模拟器上运行它时,QTranslator 加载正常
构建并部署到真实 Symbian 设备 (C7) 的相同应用程序无法正常工作 - 未加载翻译器。我没有更改我的 inter_sk.qm 文件,所以我想它没有以某种方式部署到设备上。
一个猜测???
谢谢
wpf - QtQuick 中 WPF 的等效功能是什么?
我是一名 WPF 程序员。但我看到了 WPF 的一些弱点(见我的重播)。所以我很想研究 QtQuick。
WPF 有一些很棒的功能,例如:
- 硬件加速
- 动画和效果
- 触发器(触发器、数据触发器、事件触发器)
- 资源
- 模板
- 命令
- 捆绑
- 适合 MVVM 模式
- 几何形状
- 剪辑蒙版和渐变和合成控件
- 为 Web 创建 SilverLight 版本的应用程序
QtQuick 上这些功能的等价物是什么?
qt - Qt Creator for QML Project 中的“设计”按钮灰显
我在 Kubuntu 11 系统上尝试我的第一个 Qt Quick 项目。因为这是 Kubuntu,所以我只是使用它附带的 Qt 运行,到目前为止它运行良好。
我要求 Qt Creator 从 Qt Quick 创建示例“Hello World”项目。但是设计按钮和运行按钮都是灰色的。
起初,当我进入“运行设置”下的项目菜单时,它说Qt version: [Invalid Qt Version]。按下“管理 Qt 版本”按钮会弹出一个树形控件,如下所示:
在对话框底部显示“使用 mkspec linux-g++ (Desktop) 找到 Qt 版本 4.7.2”
我发现我可以通过手动选择从 app repositories 安装 QmlViewer 来消除“Invalid Qt version”消息。您可能会认为它会说更像“未找到 Qml 查看器,请安装它”但是......哦,好吧。现在它说Qt Version: [Qt in PATH]。
这样就解决了,Qml 应用程序运行了。但是“设计”按钮仍然是灰色的。Qt Designer 作为应用程序安装,其插件显示在“关于插件...”列表中。当我单击表单文件时,在普通(非 Qt-Quick)项目中启用了设计按钮,但不适用于 .qml 文件。
symbian - 在S60第五版上安装和运行Qt快应用
我是 Qt 新手,我正在使用 Qt Quick 1.1 为 Symbian^3 平台开发应用程序。我的应用程序在 Symbian^3 触控设备上正常运行,但是当我在诺基亚 S60 第 5 版上安装时,它会安装,但应用程序无法在这些设备(S60 第 5 版)上运行。
同样如此链接Support for Symbian 中所述,S60 不支持 Qt Quick 1.1,但如果我们使用此库安装任何应用程序,那么它将首先下载 Qt Quick,然后安装 Qt,然后安装该应用程序。
当我在 S60 设备(在 RDA 上)上安装我的应用程序时,它首先使用智能安装程序下载并安装 5 个不同的单元。后来安装了我的应用程序,但是当我单击我的应用程序的图标时,它不会运行。请问这是怎么回事?
我的应用程序几乎完成了,我在 Symbian^3 设备上进行了测试,它运行良好,但它从未在 S60 设备上运行,所以我坚持在 ovi 商店发布应用程序。
我们是否需要以某种不同的方式专门为 S60 构建应用程序?相同的应用程序 sis 文件是否无法在 Symbian^3 和 S60 设备上运行?
任何帮助将不胜感激。
谢谢你