Qt入门(一)Qt概述

Qt是什么?

在这里插入图片描述

Qt是一个跨平台应用开发框架。
Qt既包括了一系列的Qt库,还包括诸多配套的开发工具如QtCreater,GUI Designer。Qt本身是由C++开发的,但是也提供了其他编程语言的接口。

Qt的定位以及同类

学一种技术,最重要的是找到这个技术在计算机中的定位,这样才能更好地把技术融入到自己的技术栈中,否则就会学一门忘一门。还要找打这门技术所在定位的同类,否则只会局限于这门技术本身,无法扩展,也无法从API中抽身出来真正理解这个定位的技术所需要的共通性的知识以及设计方案。

Qt的定位是一个跨平台的GUI开发框架。
所谓GUI开发,主要工作就是:

  • 响应用户操作。
  • 设计交互界面。
    要完成这些工作有以下方式:
  • 使用操作系统的图形学API以及事件响应API,称为native app,代表选手Qt。这种方案的优点是性能高,占用小。
  • 在里面封装一个浏览内核,直接把应用做成自带浏览器的网页,称为web app,代表选手有electron。这种方案的优点是开发方便快捷。
  • 还有一种折中路线hybrid app,既有用到web开发,又有用到操作系统API。

经典笑话:你的电脑里装了几个浏览器内核:
在这里插入图片描述

所以GUI开发框架做的事情其实就是绑定一些回调函数,然后操控更底层的图形学API进行界面更新。
得知这一点后很容易找到Qt的同类:

  • Native UI开发框架:
    • C++:Qt, WxWidget、GTK、 FLTK、 DearImGUI、Nuklear、duilib、C++ Builder、MFC、EasyX
    • Python: PyQt、WxPython、PyGTK、PyFLTK、DearPyGUI、Tkinter、PyGame
    • C#: WPF、WinForm
    • Java:Swing、JavaFx
  • web UI开发框架:
    • electron

Qt调用什么?

它需要调用的是操作系统的图形学API以实现界面更新,如:OpenGL,Vulkan等
在这里插入图片描述

还需要从操作系统获取用户的操作,键盘输入,鼠标按动等,这里就需要区分不同操作系统了,要知道,裸操作系统是没有桌面的,自然更谈不上什么鼠标了,操作系统和桌面系统是分开的【至少Linux是这样的】,

  • Qt在Linux下想要获取操作系统中的鼠标键盘信息,需要调用到X11窗口管理系统,不过依照Linux一切皆文件的思想,也可以直接在/dev中找到对应的设备IO文件解析键盘和鼠标的IO信息。
  • 在Window下则需要借助hook机制,hook机制是一种消息处理机制,一旦特定消息来了,就会给应用发通知。

学Qt前需要前置知识

  • C++基本语法
  • C++标准库
  • 面向对象编程思想

相关推荐

  1. Qt快速入门)】- Qt简介

    2024-03-10 16:32:03       9 阅读
  2. Qt 实战(1)Qt 概述

    2024-03-10 16:32:03       50 阅读
  3. <span style='color:red;'>QT</span> <span style='color:red;'>入门</span>

    QT 入门

    2024-03-10 16:32:03      30 阅读
  4. <span style='color:red;'>Qt</span> <span style='color:red;'>入门</span>

    Qt 入门

    2024-03-10 16:32:03      25 阅读
  5. 01.QT概述

    2024-03-10 16:32:03       32 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-03-10 16:32:03       16 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-03-10 16:32:03       16 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-03-10 16:32:03       15 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-03-10 16:32:03       18 阅读

热门阅读

  1. MapReduce-Join多种应用

    2024-03-10 16:32:03       20 阅读
  2. MySQL中UNION和UNION ALL的区别

    2024-03-10 16:32:03       19 阅读
  3. 云计算高级课程作业

    2024-03-10 16:32:03       20 阅读
  4. CentOS 8使用笔记

    2024-03-10 16:32:03       18 阅读
  5. CCF-CSP真题201403-2《窗口》(结构体+数组)

    2024-03-10 16:32:03       17 阅读
  6. misc40

    misc40

    2024-03-10 16:32:03      19 阅读
  7. python实现回溯算法

    2024-03-10 16:32:03       21 阅读
  8. Svelte之基础知识一

    2024-03-10 16:32:03       24 阅读
  9. 读书·基于RISC-V和FPGA的嵌入式系统设计·第3章

    2024-03-10 16:32:03       21 阅读