QML用户界面基础(一)

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了QML用户界面基础(一)相关的知识,希望对你有一定的参考价值。

参考技术A

QML 允许开发人员以声明的方式构建用户界面。
Qt Quick 是一个模块,它提供用于创建用户界面的 QML 类型,例如具有自己的坐标系和渲染引擎的可视画布。动画和过渡效果是 Qt Quick 中的一流概念,视觉效果可以通过粒子和着色器效果的专用组件来补充。

Qt Quick Controls 模块(自Qt 5.7 起)提供轻量级 QML 类型,用于创建高性能用户界面。这些控件通过采用简化的样式架构来提高效率。

如定义一个Rectangle的对象,该对象有一个子对象Text。示例如下:

要显示 QML 文档定义的图形场景,可以使用Qt Creator)加载。对于像这样的简单 UI 文件,从 Qt Creator 中选择 File > New File 或 Project > Application (Qt Quick) > Qt Quick Application - Empty 。
按下绿色运行按钮运行应用程序。可以看到文本Hello, World! 在一个红色矩形的中心。

Qml界面切换时,字体消失或乱码

前言

最近开发qml 桌面应用时,在同事的 win8系统 系统上,字体会离奇消失或者乱码,在win7, win10上面就不会有这个问题,我自己下的win8也不会,所以一度让我怀疑是操作系统的问题,后面经过我的一步一步的验证,发现确实可能是Qt的BUG,这个bug也可能只在特定系统环境下才触发,不然其它主流系统一点问题都没有,我自己下的纯净版win8也没这个问题,下面看效果图:

效果图


可以看到软件启动时是正常的,在手动切换功能页面后,字体就突然消失了或者部分乱掉了,导致程序完全属于一种错乱的感觉!


原因分析

说了这么多,还没说到具体点子上,为什么之前我说是Qt的BUG导致的,是因为导致这个字体错乱或消失的原因就是字体的渲染引擎出的问题,而Qml默认就会采用Qt自带的算法来渲染字体,

应该说是Qml自带的文本绘制引擎,因为QWidget是无法设置这个

以上是关于QML用户界面基础(一)的主要内容,如果未能解决你的问题,请参考以下文章

QtQuick与Qml介绍

QMLHelloWorld

qml怎么点击button跳出另一个qml界面

Qml界面切换时,字体消失或乱码

Qml界面切换时,字体消失或乱码

Qml界面切换时,字体消失或乱码