博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
QT5.3 杂记(转)
阅读量:5098 次
发布时间:2019-06-13

本文共 1312 字,大约阅读时间需要 4 分钟。

原文转自 

 

Qt5下,QWidget系列从QtGui中被剥离出去,成为单独的QtWidget模块。随着Qt Quick2的引入,QtDeclarative也逐渐和QWidget系列也脱离关系。

最终:在Qt5下的GUI编程,有两套不同的东西

  • QtWidget (使用一个被称为 BackingStore 的东西)

  • QtQuick (使用一个被称为 Scene Graph 的东西)

 

Qt4中的QDeclarativeView等一系列的东西被改成了QQuickView和QQmlItem等分别放到了QtQuick和QtQml模块。

QQuickView这一套框架完全脱离了QWidget的束缚,一路从QSurface到QWindow继承下来,虽说是窗口,但感觉却又不像是窗口。
QQuickView本能是使用OpenGL,使用硬件加速。

 

QQuickView 提供了一个窗体用于显示UI

QQmlEngine 提供QML运行的环境
QQuickWindow 显示窗体,以及对item对象的管理及用户交互

QQmlApplicationEngine 从Qt5.1开始提供的一个便捷对象 包含QQmlEngine和QQmlComponent能够根据一个qml文件创建一个application。

QQmlContext 类为对象的实例化以及表达式的评估提供了一个上下文环境。所有的对象都在一个特定的上下文中实例化,并且应用程序运行中要执行的表达式都在一个特定的上下文中执行。这个上下文定义了符号是如何被解析的,以及表达式操作的值。

QQmlComponent 类可以用来加载QML文档。它需要QQmlEngine来实例化定义在QML文档中的对象层次

一个典型的QML应用程序有一个C++函数的入口点,该入口点是:实例化一个QQmlEngine并且使用QQmlComponent加载一个QML文档。引擎(QQmlEngine对象)提供了一个默认的QQmlContext,这是一个顶级的上下文,用于执行定义在QML文档中的方法和表达式。定义在QML文档中的对象层次将会通过调用QQmlComponent实例化对象的create()方法被实例化。

客户端可能需要通过注入属性或者对象到上下文中修改引擎提供的默认QQmlContext。它们可以通过调用QQmlEngine::rootContext()方法来访问顶级的上下文。

在实例化对象之后,客户端通常就将控制权传递给应用程序的事件循环,以使得用户输入时间(例如鼠标点击)可以被应用程序分发和处理。

 

 

 

QML里面Row代表一行数据,所以item是按列来排的

QML里面Column是代表一列数据,所以Item是按行排的

在Row和Column中anchors(锚点)是不起作用的

 

RowLayout和ColumnLayout 也是代表一行与一列但是提供了多种的Layout附加属性并且可以使用anchors

 

在QML中获取屏幕分辨率,可以通过Screen对象的多种属性方式:例如

转载于:https://www.cnblogs.com/happykoukou/p/9584205.html

你可能感兴趣的文章
博客作业2---线性表
查看>>
右击main 方法运行正常,启动tomcat 后,spring boot 项目 出现参数字符串是乱码的情况...
查看>>
javascript朝花夕拾
查看>>
20135335郝爽 & 20135304刘世鹏 实验一
查看>>
多行文本省略号的实现.html
查看>>
写枚举常量
查看>>
[POJ 1004] Financial Management C++解题
查看>>
Oracle基础进阶
查看>>
第一篇随笔, 正在做 ESP32 , STM32 , 树莓派 RaspberryPi 的创客工具
查看>>
电商路演
查看>>
Code Review 转自伯乐在线
查看>>
Pandas plot出图
查看>>
T-SQL 随机返回特定行数据和分页查询
查看>>
SpringBoot2.0之整合Kafka
查看>>
使用 Override 和 New 关键字进行版本控制
查看>>
安装Ubuntu的那些事儿
查看>>
Safari导入书签
查看>>
wordpress如何去掉generator
查看>>
UVA 167 The Sultan's Successors
查看>>
HTMLayout嵌入原则
查看>>