创作理由:Qt插件很不起眼,但是起着至关重要的作用。为啥可以说Qt是跨平台的,其中很大一部分跟Qt的插件有关,可以做各种平台的开发,这个插件就跟VScode中的扩展一样,特别重要(不然为啥,只要是一个VScode的教程,都会在前面部分教你学如何选择一款好的扩展),下面是博主花了很大事件做的一个插件归纳总结,若写的不错,还请各位赏口水喝!!!
1、行为准则:
Qt Creator交叉编译的时候,最好是你使用了啥Qt 插件也就得保证你开发也有对应的Qt插件和依赖库:(但是也不一定)
- 行时依赖:Qt应用程序在运行时需要特定的Qt库和插件支持。即使在Ubuntu上编译成功,开发板上的环境需要相应的运行时库和插件来确保应用程序能够正常运行。
- 不同的硬件架构:开发板和您的开发机器(Ubuntu主机)可能使用不同的硬件架构。假设,开发板使用ARM架构,而您的开发机器可能使用x86架构。需要在开发板上安装适用于其架构的Qt库和插件,而不是简单复制。不同Qt版本的插件可能也互不兼容。
- 特定平台插件:某些Qt插件是平台特定的,例如,X11、Wayland等。开发板可能使用与Ubuntu主机不同的显示服务器或输入方法,因此需要对应的插件。就是显示界面啊,各种传感器嘛!就不用逻辑开发中去定义IO口了。
也不一定?就比如我ubuntu用xcb连接X11服务器来显示,但是我的开发板没有xcb,咋办呢?
我的回答:那就用linuxfb来直接连接开发板上的显示硬件来显示。为啥可以呢?开发板上一般不会给你加xcb的,尤其是那种简易的操作系统开发板,因为xcb会制造很大的资源开销,对开发板要求高点,所以一般得厂家都会使用eglfs或者linuxfb直接连接硬件来显示,那还给你整个连接服务器呢?无非就是一个显示而已,每个环境对显示的要求和能够给于的都是不一样的。我有钱,我需要4K 165HZ的显示器,你没钱,那就640×480咯!!!
2、解读下面的插件的含义:
【1】plugins
目录
plugins
目录是Qt用来存放各种插件的地方。这些插件扩展了Qt的功能,涵盖了从图像格式支持到数据库驱动等各个方面。插件是以共享库(.so
文件)的形式存在的。
常见的子目录和插件类型
- platforms:平台插件,用于支持不同的操作系统和窗口系统。
- imageformats:图像格式插件,例如支持JPEG、PNG、GIF等格式。
- sqldrivers:数据库驱动插件,例如SQLite、MySQL、PostgreSQL等。
- bearer:网络承载插件,用于管理网络连接。
- mediaservice:媒体服务插件,用于音频和视频处理。
- printsupport:打印支持插件,用于打印功能。
【2】platforms
目录
platforms
目录是plugins
目录的一个子目录,专门存放平台插件。这些插件用于支持不同的操作系统和窗口系统,例如X11、Windows、macOS等。
常见的平台插件
- libqxcb.so:用于X11系统(Linux)的平台插件。专业跨平台
- libqminimal.so:最小化的窗口系统插件,主要用于没有图形界面的环境。
- libqlinuxfb.so:用于Linux Framebuffer的插件,适用于嵌入式系统。
- libqwindows.so:用于Windows操作系统的插件。
- libqcocoa.so:用于macOS操作系统的插件。
- audio:音频插件,用于处理音频输入和输出。
- bearer:网络承载插件,用于管理网络连接。
- canbus:CAN总线插件,用于汽车和工业控制中的通信。
- designer:Qt Designer插件,用于Qt Designer集成和扩展。
- egldeviceintegrations:EGL设备集成插件,用于OpenGL ES设备的集成。
- gamepads:游戏手柄插件,用于支持游戏手柄输入。
- generic:通用插件,用于各种通用功能。
- geometryloaders:几何加载器插件,用于加载和处理几何数据。
- geoservices:地理服务插件,用于地理位置和地图服务。
- iconengines:图标引擎插件,用于加载和显示图标。
- imageformats:图像格式插件,用于支持不同的图像格式(如JPEG、PNG等)。
- mediaservice:媒体服务插件,用于处理多媒体内容。
- platforminputcontexts:平台输入上下文插件,用于处理平台特定的输入方法。
- platforms:平台插件,用于支持不同的操作系统平台(如X11、Windows等)。
- platformthemes:平台主题插件,用于提供特定平台的主题和外观。
- playlistformats:播放列表格式插件,用于处理不同格式的播放列表。
- position:位置插件,用于定位和位置服务。
- printsupport:打印支持插件,用于打印功能。
- qmltooling:QML工具插件,用于QML开发和调试。
- renderplugins:渲染插件,用于渲染和显示内容。
- sceneparsers:场景解析器插件,用于解析场景图形数据。
- sensorgestures:传感器手势插件,用于识别和处理手势。
- sensors:传感器插件,用于处理传感器数据。
- sqldrivers:SQL驱动插件,用于支持不同的数据库。
- texttospeech:文本转语音插件,用于文本转语音功能。
- virtualkeyboard:虚拟键盘插件,用于提供虚拟键盘输入。
- wayland-decoration-client、wayland-graphics-integration-client、wayland-graphics-integration-server、wayland-shell-integration:Wayland相关插件,用于支持Wayland显示服务器协议。(要安装管理器,然后在用户登录下选择进入)
- webview:网页视图插件,用于嵌入和显示网页内容。
- xcbglintegrations:XCB OpenGL集成插件,用于X11系统下的OpenGL集成。
3、实操心得:
①Qt15.5.0起不再为不同的平台提供特定的版本,而是统一的版本啦!
②安装的方法有两种:第一种直接法:点qt进去,选择直接选择的就是qt的版本 ,网上有很少的博客去讲安装步骤
第二种在线安装:点online_installers/,进去选择的就是在线安装器的版本,别跟我一样憨憨的去找qt的版本。选完版本就是选择平台啦
③用在线安装器的时候,记住低版本的qt,就别用很新的在线安装器。教训看截图:(都是泪啊)
④如果你使用在线安装器,进去发现Qt没有老版本,请点击这里左侧菜单栏“Archive”,然后点击Filter,这样它就会重新加载数据库,加载完毕你就可以选择了。
⑤登录的时候,即使你密码是对的,你也需要重新输入密码,才可以成功认证。
⑥官方给的SDK里面的Qt 插件等等资源,可能不是很全,一般只会给些比较基础的,尤其是那些新板子和存储少的,但是用于调试的一定会给,因为厂家也要调试。所以做产品开发,还是比较推荐那些资料多、硬件属性高的,可以省不少事情哦。
⑦Qt 的版本太低了 但是Qt Creator版本太高了 会出现安装不兼容的问题哦!
4、我为人人,人人喂我