问题标签 [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.

0 投票
1 回答
1960 浏览

qt - 如何从 QML 的显示中删除/移除屏幕/页面?

我有一个Loader使用它来加载多个屏幕/页面。

我有大约 10 个 QML 屏幕/页面,我在加载器中一一加载鼠标事件。

在某些屏幕上,我需要使用QWidget::setMask()功能设置透明度以使屏幕/页面的某些部分变为透明并在屏幕上打孔。

我正在使用屏幕QWidget::setMask()上的rootObjectCPP代码设置掩码。Loader

QWidget::setMask工作正常,但蒙版区域显示以前加载的屏幕/页面。

所以我有一个问题,是LoaderLoader如文档http://doc.qt.nokia.com/4.7-snapshot/qml-中所述,在加载新屏幕/页面之前,元素是否正确地从显示器中删除/删除了加载的组件加载器.html

还有两个函数命名Component.onDestroyedComponent.onDestruction

当我在 LoaderonDestruction事件中加载新屏幕/页面时,会为 Loaded 屏幕触发。

一旦我们在加载器中加载新页面,我想从显示器中完全删除/销毁屏幕/页面。我还尝试设置先前加载的屏幕的可见性和不透明度,但我仍然能够在蒙版区域中看到先前加载的屏幕/页面。

如果我设置了加载器source = ""sourceComponent = undefined然后我也可以在加载器中看到之前加载的页面,它不会刷新屏幕。前一页被破坏,但不会从显示中清除/移除。

应该是什么原因?

0 投票
1 回答
677 浏览

qt - QML:渲染 qml 屏幕时出现问题

在其中一个开发板上渲染 QML 屏幕时遇到问题

在某些屏幕上,我有 throbber gif 图像,我可以在其中看到屏幕的背景颜色,如图所示。 QML 中的刷新问题

在某些屏幕上,我有通过 JavaScript 更新的列表视图,由于我无法在列表视图元素中看到更新的图像/文本,因此它没有生效。

这是与刷新屏幕有关的某种问题吗?

在 IX86 上使用 QML 编译时,相同的代码在 Ix86 上运行良好。

0 投票
1 回答
1488 浏览

qt - QML:如何将动态创建的组件设置为加载器

我正在使用以下代码创建新的 QML 屏幕。

我想将此组件设置为加载程序。

我试过用Loader.sourceComponent = newObject;

它有效,但它给了我以下错误。

是否有任何解决方法。

谢谢。

0 投票
2 回答
7642 浏览

qt - Qt QML C++ QList 结构体作为自定义 ListView 模型

我在我的项目中拥有的是包含结构元素列表的二进制文件:

从文件中读取数据后,我将所有读取值存储在类的以下字段中:

我确实使用以下声明将此列表公开给 QML:

其次是getter和setter方法。

每次读取文件时,“setEntries”方法用于设置向量并发出信号。

QML 中的列表视图具有附加到模型的 Q_PROPERTY FileContents:

如何访问保存在结构列表中的数据并在 QML 中显示?

更新: 根据您的建议,我稍微更改了代码,现在可以正常编译了。创建了以下类:

更新 2 好的,经过更多分析,我设法找到了可行的解决方案。关于上面的 ListView 声明,它已更新为当前状态(通过引用传递结构不起作用,我必须使用按值复制)。

这两个答案在某种程度上都有帮助,但由于只能接受一个答案,我会接受 Radon 写的第一个答案。谢谢两位指导!

0 投票
1 回答
640 浏览

qt - QML:如何在 QML 中销毁或停止 workerscript

我正在尝试WorkerScript用于在 QML 中加载列表模型元素。但是一旦我们完成更新,我们
怎么能停下来呢? 有什么方法可以破坏或停止? WorkerScript
WorkerScript

0 投票
2 回答
3109 浏览

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 - 解决方案

翻译文件需要区分大小写:

0 投票
1 回答
107 浏览

qt - symbian上的qt翻译

我有一个使用 QTranslator 的简单 Qt 应用程序。部分代码如下:

当我构建我的项目并在模拟器上运行它时,QTranslator 加载正常

构建并部署到真实 Symbian 设备 (C7) 的相同应用程序无法正常工作 - 未加载翻译器。我没有更改我的 inter_sk.qm 文件,所以我想它没有以某种方式部署到设备上。

一个猜测???

谢谢

0 投票
0 回答
372 浏览

wpf - QtQuick 中 WPF 的等效功能是什么?


我是一名 WPF 程序员。但我看到了 WPF 的一些弱点(见我的重播)。所以我很想研究 QtQuick。
WPF 有一些很棒的功能,例如:

  • 硬件加速
  • 动画和效果
  • 触发器(触发器、数据触发器、事件触发器)
  • 资源
  • 模板
  • 命令
  • 捆绑
  • 适合 MVVM 模式
  • 几何形状
  • 剪辑蒙版和渐变和合成控件
  • 为 Web 创建 SilverLight 版本的应用程序

QtQuick 上这些功能的等价物是什么?

0 投票
3 回答
9234 浏览

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 文件。

0 投票
1 回答
4418 浏览

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 设备上运行?

任何帮助将不胜感激。

谢谢你