[Qt] Introdução ao Qt

00. Índice

01. Visão geral do Qt

QT é uma biblioteca de interface gráfica do usuário C ++ multiplataforma, produzida pela TrollTech, Noruega. Atualmente inclui Qt Creator, QtEmbedded, ferramenta de desenvolvimento rápido Qt Designer, ferramenta de internacionalização Qt Linguist e outras partes. Qt suporta todos os sistemas Linux / Unix e plataforma Windows , Plataforma Mac, etc.

02. Vantagens do Qt

Qt é uma estrutura de aplicativo de interface gráfica de usuário C ++ de plataforma cruzada que fornece aos desenvolvedores de aplicativos todas as funções necessárias para construir uma interface gráfica de usuário artística. Qt é fácil de estender e permite a verdadeira programação de componentes. Qt é a mesma biblioteca de interface gráfica que GTK, KDE, MFC, OWL, VCL e ATL.

As vantagens do QT são as seguintes:

2.1 Excelentes recursos de plataforma cruzada

Qt suporta os seguintes sistemas operacionais: Microsoft Windows, Linux, Solaris, SunOS, HP-UX, Digital UNIX (OSF / 1, Tru64), Irix, FreeBSD, BSD / OS, SCO, AIX, OS390, QNX, etc.

2.2 Orientado a objetos

O bom mecanismo de empacotamento do Qt torna o Qt um alto grau de modularidade, boa capacidade de reutilização e muito conveniente para o desenvolvimento do usuário. O Qt fornece um tipo seguro chamado de sinais / slots para substituir o retorno de chamada, o que torna a colaboração entre vários componentes muito simples.

2.3 Rich API

O Qt inclui mais de 250 classes C ++ e também fornece coleções baseadas em modelos, serialização, arquivo, dispositivo de E / S, gerenciamento de diretório e classes de data / hora.

2.4 Suporta renderização de gráficos 2D / 3D, suporte OpenGL

2.5 Um grande número de documentos de desenvolvimento

2.6 XML, suporte JSON, etc.

03. Ferramentas relacionadas ao Qt

As ferramentas de desenvolvimento QT incluem Qt Creator, Qt Designer, Qt Linguist, Qt Assistant, Qmake, CMake, etc.

3.1 Qt Creator

Qt Creator é um ambiente de desenvolvimento integrado de plataforma cruzada leve para desenvolvimento Qt.

3.2 Qt Designer

Qt Designer é um poderoso layout de interface gráfica de usuário de arrastar e soltar e ferramenta de design.

As funções do Qt Designer são as seguintes:

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

As vantagens do Qt Designer são as seguintes:

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

3.3 Lingüista Qt

Qt Linguist é um conjunto de ferramentas que oferece suporte à tradução rápida e sem erros de aplicativos Qt. É um conjunto de ferramentas que pode agilizar o fluxo de trabalho internacional.

As funções do Qt Linguist são as seguintes:

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

As vantagens do Qt Linguist são as seguintes:

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

3.4 Assistente Qt

O Qt Assistant é um arquivo de ajuda e leitor de documentos personalizável e redistribuível.

As funções do Qt Assistant são as seguintes:

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

As vantagens do Qt Assistant são as seguintes:

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

3,5 QMake

Gerador de makefiles de plataforma cruzada Qmake.

As funções do Qmake são as seguintes:

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

As vantagens do Qmake são as seguintes:

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

3,6 CMake

CMake é uma ferramenta de instalação (compilação) de plataforma cruzada, você pode usar frases simples para descrever a instalação (processo de compilação) de todas as plataformas. Ele pode gerar uma variedade de arquivos makefile ou de projeto e pode testar os recursos C ++ suportados pelo compilador, semelhante ao automake no UNIX. Apenas o arquivo de configuração do CMake é denominado CMakeLists.txt. Cmake não constrói diretamente o software final, mas gera arquivos de construção padrão (como Makefile para Unix ou projetos / espaços de trabalho para Windows Visual C ++) e, em seguida, usa-o da maneira usual de construção. Isso permite que os desenvolvedores familiarizados com um ambiente de desenvolvimento integrado (IDE) construam seu software de uma maneira padrão.Esta habilidade de usar o sistema de construção nativo de várias plataformas é o que distingue o CMake e o SCons de outros sistemas semelhantes.

3.7 Outras ferramentas

A. lupdate: Extraia a string a ser traduzida do arquivo de código-fonte ou de outros arquivos de recursos e salve-a no arquivo .ts no formato xml.

B. lrelease: Responsável por converter arquivos .ts em arquivos .qm usados ​​pelo programa. O arquivo .qm removerá todo o conteúdo em branco e não traduzido do arquivo .ts e compactará o formato de armazenamento.

C. lconvert: usado para conversão de formato entre arquivos de tradução.

D. QVFb: Dispositivo de buffer de quadro virtual, dispositivo de framebuffer simulado (tamanho, profundidade de cor), e também pode simular o layout do teclado de hardware (incluindo teclas especiais) através da pele, o que pode facilitar o desenvolvimento de programas embutidos no sistema desktop máquina

E. makeqpf: Crie o formato qpf para dispositivos incorporados. Qpf é uma fonte pré-renderizada, salva diretamente como conteúdo binário e pode ser carregada com mapeamento de memória quando usada, e o processo de carregamento até desenho não requer cálculo.

F, uic: Compilador de interface do usuário. Gere o código C ++ a partir do arquivo de interface do usuário (.ui).

G, rcc: Compilador de recursos. A ferramenta rcc incorpora recursos relacionados ao aplicativo Qt durante o processo de compilação de acordo com o conteúdo do arquivo .qrc.

H, qtconfig: ferramenta de configuração Qt baseada em X11 e ajuda online.

I. qconfig: ferramenta de configuração Qt Embedded (Linux e Windows CE).

J, qtdemo: exemplo de Qt e carregador de projeto de demonstração.

K. qt3to4: Uma ferramenta para ajudar a portar programas Qt 3 para Qt 4.

L, qdbusxml2cpp: compilador QtDBus XML. Converter a descrição da interface D-Bus em formato xml em código-fonte C ++

M. D-Bus Viewer: Uma ferramenta que pode visualizar objetos e informações D-Bus.

N 、 Qt Visual Studio Add-in : Visual Studio 集成

O, Qt Integração Eclipse: Integração Eclipse

04. Módulo Básico Qt

  • Qt Simultâneo
  • Qt Core
  • APIs de compatibilidade do Qt Core
  • Qt D-Bus
  • Qt GUI
  • Ajuda Qt
  • Rede Qt
  • Qt OpenGL
  • Suporte de impressão Qt
  • Qt QML
  • Qt Quick
  • Qt Quick 3D
  • Qt Quick Controls
  • Layouts rápidos do Qt
  • Qt Quick Timeline
  • Qt Quick Widgets
  • Ferramentas Qt Shader
  • Qt SQL
  • Qt SVG
  • Teste Qt
  • Qt UI Tools
  • Qt Wayland
  • Qt Wayland Compositor
  • Qt Widgets
  • Qt XML

05. Módulo de Extensão Qt

Os usuários do Qt 6.0 também podem obter os seguintes módulos de extensão por meio do gerenciador de pacotes:

  • Qt 3D
  • Formatos de imagem Qt
  • Autorização de rede Qt
  • Pacote M2M: Qt CoAP
  • Pacote M2M: Qt MQTT
  • Pacote M2M: Qt OpcUA

Ainda usamos o instalador como backend do gerenciador de pacotes e os usuários precisam usar o instalador Qt (ou ferramenta de manutenção) para selecionar bibliotecas adicionais. Estamos procurando outras soluções para melhorar o suporte do Qt Creator para o uso de bibliotecas adicionais.

Planejamos fornecer as seguintes bibliotecas adicionais no Qt 6.1:

  • Qt ativo
  • Gráficos Qt
  • Diálogos rápidos do Qt (diálogo do arquivo)
  • Qt ScXML
  • Teclado Virtual Qt

A versão Qt 6.1 concluiu o congelamento de recursos em janeiro, então atualmente apenas um pequeno número de módulos de expansão estão incluídos. Mais tarde, porém, forneceremos mais módulos de extensão para visualização.

Planejamos fornecer as seguintes bibliotecas adicionais no Qt 6.2:

  • Qt Bluetooth
  • Visualização de dados Qt
  • Animação Qt Lottie
  • Qt Multimedia
  • Qt NFC
  • Posicionamento Qt
  • Diálogos rápidos do Qt: pasta, caixa de mensagem
  • Objetos Remotos Qt
  • Sensores Qt
  • Qt SerialBus
  • Qt SerialPort
  • Qt WebChannel
  • Qt WebEngine
  • Qt WebSockets
  • Qt WebView

Alguns módulos não estão listados acima porque:

  • Eles são deliberadamente removidos do Qt 6 (como Qt KNX, Qt Script e Qt XML Patterns).
  • Esta função é ou fará parte de outros módulos, portanto, não precisa mais ser um módulo separado (como extras específicos da plataforma)
  • Planejamos lançá-los após o lançamento do Qt 6.2 LTS ou através do Qt Marketplace.
  • Eles não fazem parte do framework Qt, como ferramentas (Qt Creator, Qt Design Studio, etc.), Qt Safe Renderer, Qt Automotive Suite, etc.

06. Módulo de versão antiga

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. Apêndice

7.1 Resumo do
URL dos tutoriais Qt : https://dengjin.blog.csdn.net/article/details/115174639

Acho que você gosta

Origin blog.csdn.net/dengjin20104042056/article/details/115264831
Recomendado
Clasificación