Qt 概述

Qt 社区在 Qt Wiki(https://wiki.qt.io/) 中收集和展示了有关 Qt 的大量权威、实用的信息。“一般来说,Qt中的 Wiki 曾被用作存储知识的地方。换句话说,所有不完全静态(应在网页上)或文档(应在文档中)的东西都已放入 Wiki 中。Wiki 应该是社区查找和存储更改信息的地方。”

“也许在幻想/科幻世界中采用的是一个很好的方法。存在佳能(在我们的案例中是文档和项目代码),并且尚未被规范或将不会被规范,但是很重要。Wiki 应该是地方稍后,需要大量材料来解释 Qt,而 Wiki 是实现这一点的地方。

1 什么是 Qt

Qt 是用于桌面(desktop),嵌入式和移动设备的跨平台应用程序开发框架。支持的平台包括 Linux,OS X,Windows,VxWorks,QNX,Android,iOS,BlackBerry,Sailfish OS等。

Qt 本身并不是一种编程语言。它是用 C++ 编写的框架。预处理器 MOC (Meta-Object Compiler)(元对象编译器)用于通过 signals and slots 等功能扩展 C++ 语言。在编译之前,MOC 将解析使用 Qt 扩展 C++ 编写的源文件,并从中生成符合标准的 C++ 源。因此,框架本身和使用它的应用程序/库可以由任何符合标准的 C++ 编译器(如Clang,GCC,ICC,MinGW 和 MSVC)进行编译。

2 Build System

尽管 Qt 可以使用任何构建系统,但是 Qt 带有自己的 qmake。它是平台本地构建系统(如GNU Make,Visual Studio 和 Xcode)的跨平台前端。

CMake 也是构建 Qt 项目的流行替代方法,Qt 4 支持已在几年前集成,而 Qt 5 则提供了早期支持。

最近有一位新玩家加入了该游戏:The Qt Build Suite 又名 Qbs。Qbs 是基于 QML 的构建系统,还提供对 Javascript 的支持。该构建系统不仅提供构建功能,而且还提供像 cmake 一样的包装。

3 IDE

Qt 带有自己的名为Qt Creator 的集成开发环境(IDE)。它可在Linux,OS X 和 Windows 上运行,并提供智能代码完成,语法突出显示,集成的帮助系统,调试器和分析器集成,以及与所有主要版本控制系统(例如 git,Bazaar)的集成。除了 Qt Creator,Windows 上的开发人员还可以使用 Qt 的 Visual Studio 加载项。也可以使用其他IDE(例如 KDE 上的 KDevelop)。但是,当然根本不强制使用任何 IDE。

4 国际化和本地化

Qt为国际化( internationalization,即 i18n)和本地化(localization,即 l10n)提供了出色的支持。Qt Linguist 工具及其配套的 lupdatelreleaselconvert 可以轻松地将应用程序翻译为语言环境。Qt 支持当今使用的大多数语言和书写系统。

5 Widgets

使用 Qt,可以使用其 Widgets 模块直接用 C++ 编写GUI。Qt 还带有一个称为 Qt Designer 的交互式图形工具,该工具可用作基于Widget 的 GUI 的代码生成器。Qt Designer 可以独立使用,也可以集成到 Qt Creator 中。

6 QtQuick

用 Qt 编写 GUI 的另一种方法是使用 QtQuick 模块。使用 QtQuick 的 GUI 用 QML 编写。QML 是一种声明性对象描述语言,它集成了 Javascript 以进行过程编程。QtQuick 为使用 QML 进行 GUI 开发提供了必要的模块。可以只用 QML 编写整个应用程序,但是通常只有 GUI 用 QML 编写,而应用程序的后端是用 C++ 实现的(请参阅 Integrating QML and C++)。Qt Creator 还具有集成的 QtQuick GUI 设计器和分析器。

7 更多模块

Qt 不仅仅是一个 GUI 工具包。它为网络,数据库,OpenGL,Web 技术,传感器,通信协议(蓝牙,串行端口,NFC),XML 和 JSON 处理,打印,PDF 生成等领域的跨平台开发提供模块。

有关官方 Qt 模块的完整列表,请参见Qt文档中的 All Modules 页面。

另外,请参阅 Inqlude.org 以获取基于 Qt 的第三方模块列表,以用于 Qt 项目。

8 语言绑定

尽管使用 Qt 的应用程序通常是用 C++ 编写的,但存在与其他语言的 QML 绑定。这些不是 Qt 的一部分,而是由各种第三方提供的。例如,Riverbank Computing 提供了商业和免费软件 Python 绑定(PyQt)。 有关更多语言绑定,请参见 Category:LanguageBindings

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 206,311评论 6 481
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 88,339评论 2 382
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 152,671评论 0 342
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 55,252评论 1 279
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 64,253评论 5 371
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,031评论 1 285
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,340评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,973评论 0 259
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 43,466评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,937评论 2 323
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,039评论 1 333
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,701评论 4 323
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,254评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,259评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,485评论 1 262
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,497评论 2 354
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,786评论 2 345