0
点赞
收藏
分享

微信扫一扫

【嵌入式——QT】Model/View

曾宝月 03-11 21:30 阅读 2

Qt是什么?

在这里插入图片描述

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

Qt的定位以及同类

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++标准库
  • 面向对象编程思想
举报

相关推荐

0 条评论