[Qt] Introduction à Qt

00. Table des matières

01. Présentation de Qt

QT est une bibliothèque d'interface utilisateur graphique C ++ multiplateforme, produite par TrollTech, Norvège. Elle comprend actuellement Qt Creator, QtEmbedded, l'outil de développement rapide Qt Designer, l'outil d'internationalisation Qt Linguist et d'autres composants. Qt prend en charge tous les systèmes Linux / Unix et la plate-forme Windows , Plateforme Mac, etc.

02. Avantages Qt

Qt est un cadre d'application d'interface utilisateur graphique C ++ multiplateforme qui fournit aux développeurs d'applications toutes les fonctions nécessaires pour créer une interface utilisateur graphique artistique. Qt est facile à étendre et permet une véritable programmation de composants. Qt est la même bibliothèque d'interface graphique que GTK, KDE, MFC, OWL, VCL et ATL.

Les avantages de QT sont les suivants:

2.1 Excellentes fonctionnalités multiplateformes

Qt prend en charge les systèmes d'exploitation suivants: Microsoft Windows, Linux, Solaris, SunOS, HP-UX, Digital UNIX (OSF / 1, Tru64), Irix, FreeBSD, BSD / OS, SCO, AIX, OS390, QNX, etc.

2.2 Orienté objet

Le bon mécanisme d'emballage de Qt fait de Qt un très haut degré de modularité, une bonne réutilisabilité et très pratique pour le développement des utilisateurs. Qt fournit un type sûr appelé signaux / slots pour remplacer le rappel, ce qui rend la collaboration entre divers composants très simple.

2.3 API riche

Qt comprend plus de 250 classes C ++ et fournit également des collections basées sur des modèles, une sérialisation, un fichier, un périphérique d'E / S, une gestion de répertoire et des classes de date / heure.

2.4 Prise en charge du rendu graphique 2D / 3D, prise en charge d'OpenGL

2.5 Un grand nombre de documents de développement

2.6 Prise en charge de XML, JSON, etc.

03. Outils liés à Qt

Les outils de développement QT incluent Qt Creator, Qt Designer, Qt Linguist, Qt Assistant, Qmake, CMake, etc.

3.1 Créateur Qt

Qt Creator est un environnement de développement intégré multiplateforme léger pour le développement Qt.

3.2 Concepteur Qt

Qt Designer est un puissant outil de mise en page et de conception d'interface utilisateur graphique par glisser-déposer.

Les fonctions de Qt Designer sont les suivantes:

A、支持表单和对话框的创建,可即时预览
B、与Qt版面系统集成
C、宏大的标准widgets集
D、支持客户定制的widgets和对话框
E、与Microsoft Visual Studio .NET无缝集成

Les avantages de Qt Designer sont les suivants:

A、大大加快了界面的设计过程
B、支持所有平台上的本地外观感觉
C、开发者能在自行选择的工作环境内充分发挥其现有技能

3.3 Linguiste Qt

Qt Linguist est un ensemble d'outils qui prend en charge la traduction rapide et sans erreur des applications Qt. C'est un ensemble d'outils qui peuvent rationaliser le flux de travail international.

Les fonctions de Qt Linguist sont les suivantes:

A、采集所有的用户界面文本并以一个简洁的窗口将其展现给人工译者
B、支持所有语言
C、从单一应用的二进制程序内部提供同时多语言支持及同时多写入系统

Les avantages de Qt Linguist sont les suivants:

A、大大加快了翻译/本地化进程
B、与Qt的语言敏感排版引擎协同,以创建与语言不相关的简洁一致的界面
C、轻松应对国际市场

3.4 Assistant Qt

Qt Assistant est un fichier d'aide et un lecteur de documents personnalisables et redistribuables.

Les fonctions de Qt Assistant sont les suivantes:

A、简单明快的web浏览器般导航、书签和文档文件连接
B、支持富文本HTML
C、全文本关键词查阅
D、可定制并随Qt供应

Les avantages de Qt Assistant sont les suivants:

A、无需再从头开始构建帮助系统
B、充分利用现有的HTML技能
C、以方便搜寻和导航的格式向最终用户提供文档

3.5 QMake

Générateur de makefile multiplateforme Qmake.

Les fonctions de Qmake sont les suivantes:

A、读取工程源码,生成依赖关系树,生成平台相关工程和makefiles
B、与Visual Studio及Xcode集成

Les avantages de Qmake sont les suivants:

A、无需担忧跨平台编译
B、降低对makefile手工构建的需求度

3,6 CMake

CMake est un outil d'installation (compilation) multiplateforme, vous pouvez utiliser des phrases simples pour décrire l'installation (processus de compilation) de toutes les plateformes. Il peut générer une variété de makefile ou de fichiers de projet, et peut tester les fonctionnalités C ++ prises en charge par le compilateur, similaires à automake sous UNIX. Seul le fichier de configuration de CMake est nommé CMakeLists.txt. Cmake ne construit pas directement le logiciel final, mais génère des fichiers de construction standard (tels que Makefile pour Unix ou des projets / espaces de travail pour Windows Visual C ++), puis l'utilise de la manière habituelle de construction. Cela permet aux développeurs qui sont familiers avec un environnement de développement intégré (IDE) de construire leur logiciel de manière standard.Cette capacité à utiliser le système de construction natif de différentes plates-formes est ce qui distingue CMake et SCons des autres systèmes similaires.

3.7 Autres outils

A. lupdate: extrayez la chaîne à traduire du fichier de code source ou d'autres fichiers de ressources et enregistrez-la dans le fichier .ts au format xml.

B. lrelease: Responsable de la conversion des fichiers .ts en fichiers .qm utilisés par le programme. Le fichier .qm supprimera tout le contenu vierge et non traduit du fichier .ts et compressera le format de stockage.

C. lconvert: utilisé pour la conversion de format entre les fichiers de traduction.

D.QVFb: périphérique de tampon de trame virtuel, périphérique de tampon de trame simulé (taille, profondeur de couleur), et peut également simuler la disposition du clavier matériel (y compris les touches spéciales) à travers la peau, ce qui peut faciliter le développement de programmes intégrés sur le système de bureau machine

E. makeqpf: crée le format qpf pour les périphériques intégrés. Qpf est une police pré-rendue, directement enregistrée en tant que contenu binaire, et peut être chargée avec un mappage de mémoire lorsqu'elle est utilisée, et le processus du chargement au dessin ne nécessite pas de calcul.

F, uic: compilateur d'interface utilisateur. Générez du code C ++ à partir du fichier d'interface utilisateur (.ui).

G, rcc: compilateur de ressources. L'outil rcc intègre les ressources associées dans l'application Qt pendant le processus de compilation en fonction du contenu du fichier .qrc.

H, qtconfig: outil de configuration Qt basé sur X11 et aide en ligne.

I. qconfig: outil de configuration Qt Embedded (Linux et Windows CE).

J, qtdemo: exemple de Qt et chargeur de projet de démonstration.

K. qt3to4: Un outil pour aider à porter les programmes Qt 3 vers Qt 4.

L, qdbusxml2cpp: compilateur XML QtDBus. Convertir la description de l'interface D-Bus au format xml en code source C ++

M. D-Bus Viewer: Un outil qui peut afficher des objets et des informations D-Bus.

N 、 Complément Qt Visual Studio : Visual Studio 集成

Intégration O, Qt Eclipse: intégration Eclipse

04. Module de base Qt

  • Qt simultané
  • Qt Core
  • API de compatibilité Qt Core
  • Qt D-Bus
  • Interface graphique Qt
  • Aide Qt
  • Réseau Qt
  • Qt OpenGL
  • Prise en charge de l'impression Qt
  • Qt QML
  • Qt rapide
  • Qt Quick 3D
  • Contrôles rapides Qt
  • Dispositions rapides Qt
  • Chronologie rapide Qt
  • Widgets rapides Qt
  • Outils Qt Shader
  • Qt SQL
  • Qt SVG
  • Test Qt
  • Outils d'interface utilisateur Qt
  • Qt Wayland
  • Compositeur Qt Wayland
  • Widgets Qt
  • XML Qt

05. Module d'extension Qt

Les utilisateurs de Qt 6.0 peuvent également obtenir les modules d'extension suivants via le gestionnaire de packages:

  • Qt 3D
  • Formats d'image Qt
  • Autorisation réseau Qt
  • Paquet M2M: Qt CoAP
  • Paquet M2M: Qt MQTT
  • Paquet M2M: Qt OpcUA

Nous utilisons toujours le programme d'installation comme backend du gestionnaire de packages, et les utilisateurs doivent utiliser le programme d'installation de Qt (ou outil de maintenance) pour sélectionner des bibliothèques supplémentaires. Nous recherchons d'autres solutions pour améliorer la prise en charge de Qt Creator pour l'utilisation de bibliothèques supplémentaires.

Nous prévoyons de fournir les bibliothèques supplémentaires suivantes dans Qt 6.1:

  • Qt actif
  • Graphiques Qt
  • Boîtes de dialogue rapides Qt (boîte de dialogue Fichier)
  • Qt ScXML
  • Clavier virtuel Qt

La version 6.1 de Qt a terminé le gel des fonctionnalités en janvier, donc actuellement, seul un petit nombre de modules d'extension sont inclus. Mais plus tard, nous fournirons plus de modules d'extension pour la prévisualisation.

Nous prévoyons de fournir les bibliothèques supplémentaires suivantes dans Qt 6.2:

  • Bluetooth Qt
  • Visualisation des données Qt
  • Animation de Qt Lottie
  • Multimédia Qt
  • Qt NFC
  • Positionnement Qt
  • Dialogues rapides Qt: dossier, boîte de message
  • Objets distants Qt
  • Capteurs Qt
  • Qt SerialBus
  • Qt SerialPort
  • Qt WebChannel
  • Qt WebEngine
  • WebSockets Qt
  • Qt WebView

Certains modules ne sont pas répertoriés ci-dessus car:

  • Ils sont délibérément supprimés de Qt 6 (tels que Qt KNX, Qt Script et Qt XML Patterns).
  • Cette fonction fait ou fera partie d'autres modules, elle n'a donc plus besoin d'être un module séparé (comme les extras spécifiques à la plate-forme)
  • Nous prévoyons de les publier après la sortie de Qt 6.2 LTS ou via Qt Marketplace.
  • Ils ne font pas partie du framework Qt, comme les outils (Qt Creator, Qt Design Studio, etc.), Qt Safe Renderer, Qt Automotive Suite, etc.

06. Ancien module de version

QT基础模块包括:
1) Qt Core,提供核心的非GUI功能,所有模块都需要Qt Core模块。Qt Core模块的类包括了动画框架、定时器、各个容器类、
时间日期类、事件、IO、JSON、插件机制、智能指针、图形(矩形、路径等)、线程、XML 等。
2) Qt Gui,提供 GUI 程序的基本功能,包括与窗口系统的集成、事件处理、OpenGL 和 OpenGL ES 集成、2D 图像、字体、拖放等,
一般由 Qt 用户界面类内部使用,也可以用于访问底层的 OpenGL ES 图像 API。Qt Gui 模块提供的是所有图形用户界面程序都需要
的通用功能。
3) Qt Multimedia,提供视频、音频、收音机以及摄像头等功能,需要在 pro 文件中添加 QT += multimedia。
4) Qt Network,提供跨平台的网络功能,需要在 pro 文件中添加 QT += network。
5) Qt Qml,提供供 QML(一种脚本语言,也提供 JavaScript 的交互机制) 使用的 C++ API,需要在 pro 文件中添加 QT += qml。
6) Qt Quick,允许在 Qt/C++ 程序中嵌入 Qt Quick(一种基于 Qt 的高度动画的用户界面,适合于移动平台开发),需要在 pro 文
件中添加 QT += quick。
7) Qt SQL,允许使用 SQL 访问数据库,需要在 pro 文件中添加 QT += sql。
8) Qt Test,提供 Qt 程序的单元测试功能,需要在 pro 文件中添加 QT += testlib。
9) Qt Webkit,基于 WebKit2 的实现以及一套全新的 QML API

QT扩展模块包括:
(1)Qt 3D,提供声明式语法,在 Qt 程序中可以简单地嵌入 3D 图像。Qt 3D 为 Qt Quick 添加了 3D 内容渲染。Qt 3D 提供了 
QML 和 C++ 两套 API,用于开发 3D 程序。
(2)Qt Bluetooth,提供用于访问蓝牙无线设备的 C++ 和 QML API。
(3)Qt Contacts,用于访问地址簿或者联系人数据库的 C++ 和 QML API。
(4)Qt Concurrent,封装了底层线程技术的类库,方便开发多线程程序。
(5)Qt D-Bus,是一个仅供 Unix 平台使用的类库,用于利用 D-Bus 协议进行进程间交互。
(6)Qt Graphical Effects,提供一系列用于实现图像特效的类,比如模糊、锐化等。
(7)Qt Image Formats,支持图片格式的一系列插件,包括 TIFF、MNG、TGA 和 WBMP。
(8)Qt JS Backend,模块没有公开的 API,是 V8 JavaScript 引擎的一个移植,仅供 QtQml 模块内部使用。
(9)Qt Location,提供定位机制、地图和导航技术、位置搜索等功能的 QML 和 C++ API。
(10)Qt OpenGL,方便在 Qt 应用程序中使用 OpenGL,仅仅为了程序从 Qt 4 移植到 Qt 5 的方便才保留下来,如果你需要在新的 
Qt 5 程序中使用 OpenGL 相关技术,需要使用的是 QtGui 模块中的 QOpenGL。
(11)Qt Organizer,使用 QML 和 C++ API 访问组织事件(organizer event)。organizer API 是 Personal 
Information Management API 的一部分,用于访问 Calendar 信息。通过 Organizer API 可以实现:从日历数据库访问日历时间、导入 
iCalendar 
事件或者将自己的事件导出到 iCalendar。
(12)Qt Print Support,提供对打印功能的支持。
(13)Qt Publish and Subscribe,为应用程序提供对项目值的读取、导航、订阅等的功能。
(14)Qt Quick 1,从 Qt 4 移植过来的 QtDeclarative 模块,用于提供与 Qt 4 的兼容。如果你需要开发新的程序,需要使用 
QtQuick 模块。
(15)Qt Script,提供脚本化机制。这也是为提供与 Qt 4 的兼容性,如果要使用脚本化支持,请使用 QtQml 模块的 QJS* 类。
(16)Qt Script Tools,为使用了 Qt Script 模块的应用程序提供的额外的组件。
(17)Qt Sensors,提供访问各类传感器的 QML 和 C++ 接口。
(18)Qt Service Framework,提供客户端发现其他设备的服务。Qt Service Framework 为在不同平台上发现、实现和访问服务定义了
一套统一的机制。
(19)Qt SVG,提供渲染和创建 SVG 文件的功能。
(20)Qt System Info,提供一套 API,用于发现系统相关的信息,比如电池使用量、锁屏、硬件特性等。
(21)Qt Tools,提供了 Qt 开发的方便工具,包括 Qt CLucene、Qt Designer、Qt Help 以及 Qt UI Tools 。
(22)Qt Versit,提供了对Versit API 的支持。Versit API是Personal Information Management API 的一部分,用于 QContacts
 和 vCard 以及 QOrganizerItems 和 iCalendar 之间的相互转换。
(23)Qt Wayland,仅用于Linux平台,用于替代 QWS,包括 Qt Compositor API(server)和 Wayland 平台插件(clients)。
(24)Qt WebKit,从 Qt 4 移植来的基于 WebKit1 和 QWidget 的 API。
(25)Qt Widgets,使用 C++ 扩展的 Qt Gui 模块,提供了一些界面组件,比如按钮、单选框等。
(26)Qt XML,SAX 和 DOM 的 C++ 实现。该模块已经废除,请使用 QXmlStreamReader/Writer。
(27)Qt XML Patterns,提供对 XPath、XQuery、XSLT 和 XML Schema 验证的支持。

07. Annexe

7.1 Résumé de l'
URL des didacticiels Qt : https://dengjin.blog.csdn.net/article/details/115174639

Je suppose que tu aimes

Origine blog.csdn.net/dengjin20104042056/article/details/115264831
conseillé
Classement