Qt 5 桌面应用程序开发指南 - QtWidgets 篇

Qt 5.14.2 是跨平台应用开发框架 Qt 的最新版本,除了采用基于 C++11 的经典 Qt Widgets 进行桌面应用程序开发以外,还支持通过 Qt Quick 快速开发适用于移动端设备的用户界面,因为 Qt 5 底层图形渲染引擎基于 GPU 硬件加速,所以其能够保持与原生 C++ 近乎等同的运行效率。笔者计划通过两篇文章分别对这 2 种技术进行介绍,但是无论如何,在传统跨平台桌面应用开发领域,Qt Widgets 依然是 Qt5 最为基础与核心的内容。

虽然 Qt 6 发布在即,但是官方声明将会依然保持 API 的兼容与稳定性,因此本文依然基于当前最新的 Qt5 稳定版本撰写。全文将会分别对 Qt Widgets 当中使用较为频繁的窗口部件布局管理应用主窗口事件系统对象模型风格与样式国际化等部分内容进行深入介绍,同时展示完善的示例代码以及程序运行效果,并结合《QtQuick 篇》一文讲解混合编程相关的技术。

阅读更多

Qt 5 桌面应用程序开发指南 - QtQuick 篇

由于 Material Style 这样富含动画效果的用户界面风格,并不能简单的加入到以静态图形作为主要显示单元的QWidget当中。所以 Qt 官方推出了一种声明式编程语言 QML(Qt 元对象语言,Qt Meta-Object Language),其提供了一种具有更高可读性的声明式语法,并附带了必要的 JavaScript 语句和动态属性绑定支持。QML 的语言特性和引擎框架由 Qt QML 模块提供,该模块同时提供了 QMLC++ 两套接口。

Qt Quick 是一款基于 QML 的应用程序标准库,包含有可视化类型、交互类型、动画、模型和视图、粒子特效等特性,这些都是由 Qt5 上的Qt Quick模块提供,通过import语句即可方便的进行导入。Qt Quick 同样提供了 QMLC++ 两套接口,可以轻松构建具有流畅动画效果的动态 QML 用户界面。而 Qt 5.7 版本以后推出的 Qt Quick Controls 更是提供了丰富的开箱即用控件,让快速开发成为了可能。

阅读更多

面向对象的 C++ 11 程序设计语言

2011 年,C++ 标准委员会发布了 ISO C++ 标准的一个重要修订版 C++ 11;该修订版是 C++ 语言演进过程当中的重要一步,也是当前获得编译器(GCCLLVMQt5Visual C++支持较多,兼容性最为优秀的一个版本。增添了类型说明符autodecltypeLambda 表达式智能指针 unique_ptr shared_ptr weak_ptr空指针 nullptr等诸多新特性,语言风格更加灵活统一的同时,极大提升了程序的编写效率。

本文基于《C++ Primer》一书最新的第 5 版撰写而成,该书作为 C++ 语言学习的经典读物,同样与时俱进增添了 C++ 11 的诸多新特性。因此,本文也选择了支持 C++ 11 标准的 Qt5 作为开发编译环境。由于 C++ 面向过程的语法与 C 语言类似,而笔者之前已经在《Linux C 标准程序设计》一文对相关内容进行了详尽的表述,因而本文将会着重笔墨水介绍 C++ 面向对象以及标准库方面的内容。

阅读更多

Linux C 标准程序设计语言

最早的 C 编程语言标准由美国国家标准协会(ANSI)在 1989 年首次发布(C89 版本),后于 1990 年由国际标准化组织(ISO)修订后发布(C90 版本)标准,而后经历了 C99、C11 等一系列主要版本的演进,截止目前最新的版本是 2018 年 10 月发布的 C18 版本。笔者当前使用的 Linux C 编译工具是 2018 年 1 月 25 日释出的GCC 7.3.0版本,提供了 C89/C90 、C99、C11 等一系列 ISO 标准特性的支持。

本文将分为《语法规范》《应用程序》两个姊妹篇,前者侧重于介绍 Linux C 各个数据类型的存储模型,并概括了函数、条件编译、动态内存管理、位运算、指针等嵌入式 C 程序设计的常用概念。后者将涉及 Linux 文件系统 IO、进程间通信、多线程、网络编程等应用程序开发方面的内容。

阅读更多