![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
qt编程
文章平均质量分 82
szembed
这个作者很懒,什么都没留下…
展开
-
Qt Embedded之二:Input 输入系统
Eglfs 使用它自己的 32x32 的鼠标图片。如果这不能满足,用户可以指定自己的图片,方法是设置 QT_QPA_EGLFS_CURSOR 环境变量,这个环境变量是一个 JSON 文件名称。这个文件也可以通过 Qt 资源文件嵌入到应用中。转载 2023-08-14 17:00:35 · 352 阅读 · 0 评论 -
Qt Embedded之一:简介与平台插件介绍
嵌入式 Linux 发行版上的 Qt 属于 Qt 的 Embedded Linux 分支平台(本文简称为 Qt/E)。Qt/E 在原始 Qt 的基础上,做了许多出色的调整以适合嵌入式环境。同桌面版的 Qt/X11 相比,嵌入式的 Qt/E 很节省内存,因为它不需要 X server 或是 Xlib 库,它在底层摒弃了 Xlib,采用 Framebuffer(帧缓冲)作为底层图形接口。Qt/E 的应用程序可以直接写内核帧缓冲,这避免开发者使用繁琐的 Xlib/Server 系统。转载 2023-08-14 16:54:20 · 408 阅读 · 0 评论 -
Qt项目升级到Qt6吐血经验总结
万能方法:安装5.15版本,定位到报错的函数,切换到源码头文件,可以看到对应提示字样 QT_DEPRECATED_X("Use sizeInBytes") 和新函数。按照这个提示类修改就没错,一些函数是从Qt5.7 5.9 5.10等版本新增加的,可能你的项目还用的Qt4的方法,但是Qt6以前都兼容这些旧方法,到了Qt6就彻底需要用新方法了。Qt6对core这个核心类进行了拆分,多出来core5compat,因此你需要在pro增加对应的模块已经代码中引入对应的头文件。//代码中引入头文件。转载 2023-08-14 16:42:22 · 414 阅读 · 0 评论 -
qmake language $$() $$[] $${} 区别(属性property、变量variable、环境变量evironment variable)
目录属性、变量、环境变量一、qmake的property:获取property值的用法为:$$[property name] 二、qmake中的变量:三、qt中的环境变量:获取变量的值的方式为$$(variable)$$()与$()的区别四、结尾:测试 qmake 语言中,可用于存储值的标识有三种,分为属性(property)和变量(variable)、环境变量(environment variabl) 属性包括内建属性(build-in property)、自定义属性,属性相关内容在帮助文档目录中的:Qt转载 2023-08-10 15:55:38 · 79 阅读 · 0 评论 -
qmake:变量手册
qmake 的基本行为受定义每个项目构建过程的变量声明的影响。转载 2023-08-10 15:28:56 · 188 阅读 · 0 评论 -
Qt 编译环境笔记 (qt.conf) (xxxx.pro)
工程文件明明是CONFIG += c++11但在Makefile里却是-std=c++0x, 正常的逻辑应该是-std=c++11才对呀, 由此又有一个新的论点,即-std=c++0x是Qt5通过其他特征导入的配置,而不是通过CONFIG += c++11, 我就懒得去验证了。有些童鞋一开始用的Qt5的时候没有问题,切换到Qt4发现连最基本的C/C++语法的编译都有问题,开始不相信自己学过的语法了。提出这个问题的原因是由于Qt在编译的时候将安装路径写死在库文件中,当使用qmake xxxx.pro生成的。转载 2023-08-10 15:16:18 · 359 阅读 · 0 评论 -
Linux中安装libjpeg库(两种应用)
安装这个库的目的,主要是为了将yuv格式的图片文件转换成jpg格式的图片文件。两种应用场景:一、可能你需要写一个程序,这个程序是放在Ubuntux86)上运行的,就将ubuntu上的一些yuv图片转化成jpg图片文件,就可以下载这个libjpeg库,然后去调用这个库中提供的一些函数去实现图片格式的转换。二、相同的需求,也是需要进行一个图片格式的转换,但是这个转换的程序是放在嵌入式Linux开发板arm)上面去运行的。相同功能的程序,放在不同架构的平台去运行。转载 2023-08-10 14:57:27 · 765 阅读 · 0 评论 -
Qt QImage 读写jpg格式 需要加载插件
QImage支持很多图像格式,有些是默认支持的,如png,bmp等。有些需要加载插件后才能支持,如jpg,tif等。bmp,png等加载插件后支持的格式如下图:gif,jpg,tif等Qt默认支持png格式,可以直接读写png。Qt默认不支持jpg格式,需要加载插件后,才能读写jpg。1.通过qt.conf文件配置jpg插件,插件路径灵活。2.调用代码加载jpg插件,插件路径固定。转载 2023-08-10 12:31:52 · 803 阅读 · 0 评论 -
QProcess执行linux命令行的命令(详解各种情况可能存在的问题)
因为我是做的linux下开发,所以程序中需要多次在qt中调用linux命令行的命令,并且需要根据命令的执行结果做出相应的判断。qt中使用QProcess类实现进程间通信,也就是说QProcess可以调用外部程序并获取外部程序的信息。linux中通过启动bash(windows中启动cmd)来执行命令行的命令,并可以获取命令行的返回信息。下面我详细介绍一下QProcess的具体用法和我踩过的坑以及注意事项:start();//启动一个进程close();//关闭启动的外部进程write();转载 2023-08-10 11:47:13 · 1447 阅读 · 0 评论 -
Ubuntu 18.04安装QtCreator+配置qt环境+qtchooser
写这个博客的时候,我用了一段时间的QtCreator,感觉良好,足以说是一个很好的C++的IDE了,但是说实话对于qt这个东西确实没有什么了解(到现在依然是),只知道qt框架适合写GUI页面,可以用C++开发比较好看的图形化程序.现在也在慢慢学习当中,今天先随便写一个qt环境的搭建吧.转载 2023-08-10 11:20:19 · 1289 阅读 · 0 评论 -
QT编译配置中-tslib和-evdev的区别和使用说明
对于 Qt 而言,它支持 tslib 单点输入,tslib 是一个第三方库,对电阻屏这类低精度屏而言表现较为优秀;而 evdev 则是 Qt 自带输入库,支持多点输入,但是对于电阻这类需要校准的屏幕效果不好,适合电容这类屏幕。以上就是 Qt 支持的输入事件,在嵌入式设备中我们比较常接触的一个是电阻屏时代的 tslib 一个是电容屏比较常用的 evdev 两种。这个适用于电阻屏,当然电容屏也可以使用,不过会出现两者不匹配的问题,需要重新校准一下,这部分可以网上检索太多了。转载 2023-08-10 10:35:18 · 457 阅读 · 0 评论 -
Qt中使用OpenSSL
OpenSSL官网OpenSSL官网:OpenSSL是一个开源跨平台的加密库,应用广泛。。网站内容为英文,阅读起来需要一些耐心。Qt使用了OpenSSL,但是因为地区法律规定的原因,在Qt安装包里面并没有包含OpenSSL,需要用的话,在遵守法律的前提下,自己编译安装,并对你的软件合法分发。这里说的“法律”,OpenSSL官网在首页最下方对其进行了描述(来自必应翻译):请记住,在世界某些地区,进出口和/或使用强大的加密软件、提供加密钩,甚至只是传达有关加密软件的技术细节都是非法的。转载 2023-08-10 10:30:18 · 355 阅读 · 0 评论 -
Linux(UOS) Qt不能播放音频的问题
网上有很多关于编译Qt 源码时配置configure的文章,但是需要注意的是,不同Qt 版本可能对应的configure配置会有差异,特别是大版本之间,所以网上的有些配置并不一定能适用你当前的Qt版本,除非用的Qt版本一样。这里可以看几项对于audio的编译配置,主要是前两个,在linux x86环境下通过Qt 安装包安装的目录下,插件audio中可以看到两个库,在编译之前还有一个地方要注意,要编译libqtaudio_alsa这个库必须要先在本机安装 alsa,可以通过。这样基本就没问题了。转载 2023-08-10 10:27:24 · 176 阅读 · 0 评论 -
QT笔记--嵌入式QT交叉编译与移植(含OpenGL ES2)
本文记录了QT并移植到开发板的过程,并在虚拟机上用QTcreater 开发程序,到开发板上运行。其中重点解决了一些过程中的BUG和坑。转载 2023-08-10 10:23:29 · 2290 阅读 · 0 评论 -
AM335X/A40I平台 QT4.8移植和QT应用开发连载(五)
另外:qt程序中默认只支持png格式图片,如果需要使用其他格式,需要添加相应图片插件,默认路径为/usr/lib/目录下,EVB335X默认支持的图片格式:jpeg 、tga 、ico 、tiff格式。由于运行qtdemo1程序运行音频测试时指定了,/usr/test/aaa.mp3文件,所以在EVB335X /usr/test/目录下也需要移植一个aaa.mp3的文件。linux系统下,可通过scp命令将其拷贝到开发板/opt/qtenv/QT-4.8.2-arm/lib/fonts目录下。原创 2023-07-18 15:30:37 · 91 阅读 · 0 评论 -
AM335X/A40I平台 QT4.8移植和QT应用开发连载(四)
中,或在编译的时候指定路径。指定路径的方法请参考:光盘linux\linux_api\CoM335x_linux_API使用手册 中附录部分:应用程序调用库函数过程演示。以EVB-335X qt界面程序为例,将光盘中:linux\test_code\qtdemo1程序源码拷贝到虚拟机linux下,定位到代码目录。本文记录了QT4.8平台在AM335X/A40I等现在流行嵌入式平台的移植过程,说明过程中可能会技术瑕疵,希望大家提供宝贵意见。支持SDIO3.0,USB2.0 HOST&OTG,原创 2023-07-18 14:38:23 · 120 阅读 · 0 评论 -
AM335X/A40I平台 QT4.8移植和QT应用开发连载(三)
若内核配置为同时支持电阻屏和电容屏,则电阻屏设备节点为:/dev/input/event1 ,电容屏设备节点为:/dev/input/event2。此时,若使用电容屏,需要指定/etc/profile中TSLIB_TSDEVICE和QWS_MOUSE_PROTO参数为/dev/input/event2。在开发板建立/usr/local/tslib目录,将虚拟机/usr/local/tslib库拷贝到开发板/usr/local/tslib目录下。集成电源版本,集成电源是TPS65217。原创 2023-07-18 14:16:39 · 112 阅读 · 0 评论 -
AM335X/A40I平台 QT4.8移植和QT应用开发连载(二)
本文记录了QT4.8平台在AM335X/A40I等现在流行嵌入式平台的移植过程,说明过程中可能会技术瑕疵,希望大家提供宝贵意见。本文移植的平台来自于盈鹏飞嵌入式的COM-335X平台(处理器是AM335X)和COM-X40I平台(处理器是全志A40I/T3).集成电源版本,集成电源是TPS65217分立电源版本支持Mali-400MP2GPU,支持支持1080P 视频编码,支持H.264,VP8;原创 2023-07-18 11:47:12 · 102 阅读 · 0 评论 -
AM335X/A40I平台 QT4.8移植和QT应用开发连载(一)
本文记录了QT4.8平台在AM335X/A40I等现在流行嵌入式平台的移植过程,说明过程中可能会技术瑕疵,希望大家提供宝贵意见。本文移植的平台来自于盈鹏飞嵌入式的COM-335X平台(处理器是AM335X)和COM-X40I平台(处理器是全志A40I/T3).集成电源版本,集成电源是TPS65217分立电源版本支持Mali-400MP2GPU,支持支持1080P 视频编码,支持H.264,VP8;原创 2023-07-18 11:03:29 · 68 阅读 · 0 评论 -
为什么在ARM板上qt字体会变小?
所以在同一显示屏下,屏幕大小就固定了,其显示能力也固定了,也就是说显示器横向、纵向能够显示的像素点是有上限的,如果显示器的最佳显示分辨率为1440×900,那么该显示器横向上最多也就1440个像素点,再高就不行了!那么字体的像素大小是 90 * 20 / 72 约等于 25.而DPI=120时,同样20point,像素增大,字体变大。有些显示器的设置分辨率(dpi)比较大,那么单位长度中的像素点就比较多,这样一个字所占的长度就会比较少。qt是根据显示器的物理长度或者宽度于分辨率的关系来计算dpi的。转载 2023-07-07 15:10:29 · 306 阅读 · 0 评论 -
Qt之高DPI显示器(二) - 自适配解决方案分析
这里笔者贴一个适配完成以后的TWidget类,大家可以先分析分析,也可以猜猜看,每一处代码的具体含义。所有代码细节笔者后边会具体分析每一处细节。转载 2023-07-07 14:53:18 · 590 阅读 · 0 评论 -
Qt之高DPI显示器(一) - 解决方案整理
目录最近一直在处理高DPI问题,也花费了不少功夫,前前后后使用了多种解决方案,各种方案也都有利弊,笔者最终采用了自适配方案,虽然复杂一些,但是结果可控。这里把处理的过程记录下来,留给有同样需求的同学。转载 2023-07-07 14:28:15 · 1227 阅读 · 0 评论 -
Qt5编译源码 (四)之 解密 qmake
qmake 根据配置选项参数中整理出所有特性相关的定义,从各个“configure.json”文件中查找是否定义了某特性,然后判断此特性依赖条件是否满足,最终决定是否启用此特性。有时候 configure 显示的信息并不那么完善,我们可以找到对应模块的 “qtXXX-config.h” 文件,打开文件查看里面定义了哪些特性,哪些特性被禁用了等等。在这种语法里面,也有变量的概念,有操作符,有可视域,条件表达式,还有函数定义。Test 函数也有返回,但是它的返回指示“成功”或“失败”,多用于条件表达式。转载 2023-07-07 14:18:56 · 189 阅读 · 0 评论 -
Qt5编译源码 (三)之 解密 configure 脚本
编译 Qt5 源码是个力气活,其各种库的依赖关系很复杂,如果自己编译,需要安装很多系统库及其头文件。配置阶段,它自己会进行环境检测,依赖测试,对于依赖条件不满足的组件或者模块进行禁用操作。如果想启用某个模块,可能因为依赖不足多次出现配置失败的结果。如果知道配置工具的工作原理,可以配置之前去查某个模块的依赖项,当然,这没有多少必要性,纯属个人兴趣。转载 2023-07-07 14:13:43 · 307 阅读 · 0 评论 -
Qt5编译源码 (二)之 裁剪
比如 small 选项,将不编译Qt自带的标准对话框,QSetting、QLibrary,不支持 bmp jpeg ppm xbm 等等图片格式,不支持编码,不支持翻译,不支持各种model,不支持动作、剪切板、拖放、快捷键等等等。往往某个特性被另外一个特性依赖,这种依赖判断 configure 处理的并不好,配置过程能顺利过去,但是编译的时候可能出现未定义的情况出现,就有可能是因为某个特性缺少。裁剪过程中,不可避免的有些想当然的时候,想当然的认为去掉某个特性可以使编译出来的目标库文件更小一点儿。转载 2023-07-07 14:05:58 · 812 阅读 · 0 评论 -
Qt5编译源码 (一)之 帮助
在帮助信息里有部分选项标注了 "Select ... [system/qt/no]" ,有这种标注的选项既可以选择启用或者禁用"-no-xxx",也可以选择使用第三方库实现或者qt自己的实现"-system-xxx" "-qt-xxx"从帮助信息我们可以看到,配置选项包括,编译行为设置、裁剪目标、平台设置、第三方依赖等等。Qt 入门在配置,配置入门在帮助。在新版本的 Qt(5.15) ,经过不完全验证,使用-no-xxx 禁用特性同样可以使用 "-no-feature-xxx"。转载 2023-07-07 12:34:47 · 283 阅读 · 0 评论 -
Qt5.7.0配置选项(configure非常详细的参数)
默认的安装目录和平台相关,但是在configure时,可以通过-prefix选项指定安装目录,比如./configure -prefix /opt/Qt-5.7。当编译目录和源码目录不一样时,称为影子编译(shadow build),比如说,Qt Creator默认是使用影子编译来编译工程的。-device-option:设置额外的qmake参数,比如,-device-option CROSS_COMPILE=提供了特定设备交叉编译所需的环境变量。转载 2023-07-07 10:34:14 · 3079 阅读 · 2 评论 -
QT5.13.0 的./configure参数解释(最新版本)
一般来说大家就照着现有的参数复制上去,改下安装目录就行了。虽然有大量的配置选项和参数,但如果不是真的了解和需要接触的库/特性,都用不上。看一下大概的用法,以后有需要想起来或许有这个东西有用就行。标红色的参数,我认为是比较常用的参数,在编译不同平台版本,裁剪等。需要多多了解。用法:配置[选项][分配]Configure理解变量赋值,比如命令行上的VAR=value。转载 2023-07-06 17:03:00 · 1159 阅读 · 0 评论 -
Qt使用QSetting对ini配置文件进行读取和写入
INI文件是Initialization File的缩写,即初始化文件,主要用来保存程序经常用到的一些配置参数。另外,可以直接打开 info.ini 文件,按照格式改动文件,此时,需要重新启动程序,才能将改动的内容反应出来。可以通过界面添加节、键和键值,按下 setData 按钮会将内容写入到 info.ini 文件中。读取时,在section和key中输入相应内容,点击getData按钮则输出相应的值。新建名为ini_use的工程,基类为QWidget,类名称为ini_use。// 结束当前节的操作。转载 2023-07-06 15:33:48 · 1810 阅读 · 0 评论 -
Qt4过渡至Qt5
Qt4过渡到Qt5不算显著,然而,“模块化”的Qt代码也需要改变项目配置,如使用“headers”,和配置项目构建(如:改变*.pro文件)。Qt4过渡到Qt5不算显著,然而,“模块化”的Qt代码也需要改变项目配置,如使用“headers”,和配置项目构建(如:改变*.pro文件)。当Qt的系统上安装了C++11,建立从源代码的Qt库/框架链接,系统的C++ 11库(libc++)。当Qt的系统上安装了C++11,建立从源代码的Qt库/框架链接,系统的C++ 11库(libc++)。转载 2023-07-06 14:46:28 · 308 阅读 · 0 评论 -
[Qt配置指南—5]Qt 5.4.2 Configure Options---Qt for Embeded Linux嵌入式Linux
如有错误,欢迎批评指正!!! Qt for Embeded Linux 这里着重讨,http://doc.qt.io/qt-5/embedded-linux.html 一、配置特定设备 触摸屏对于一些电阻式,单点触摸触摸屏,可能需要回退到使用tslib,而不是依赖于Linux多点触摸协议和事件设备。 对于现代触摸屏这不是必要的。 可以通过将环境变量QT_QPA_EGLFS_TSLIB或QT_QPA_FB_TSLIB设置为1来启用tslib支持。要更改设备,请在命令行中设置环境变量TSLIB转载 2023-07-06 14:17:17 · 1013 阅读 · 0 评论 -
[Qt配置指南—5]Qt 5.4.2 Configure Options---Qt for Embeded Linux嵌入式Linux
如有错误,欢迎批评指正!!! Qt for Embeded Linux 这里着重讨,http://doc.qt.io/qt-5/embedded-linux.html 一、配置特定设备 触摸屏对于一些电阻式,单点触摸触摸屏,可能需要回退到使用tslib,而不是依赖于Linux多点触摸协议和事件设备。 对于现代触摸屏这不是必要的。 可以通过将环境变量QT_QPA_EGLFS_TSLIB或QT_QPA_FB_TSLIB设置为1来启用tslib支持。要更改设备,请在命令行中设置环境变量TSLIB转载 2023-07-06 14:13:33 · 619 阅读 · 0 评论 -
qDebug用法详解
在项目中自定义结构体非常常见,但是打印自定义结构体很麻烦,每次使用都需要逐个成员依次打印,输出起来就很麻烦。普通实现int id;普通用法也有个简单的做法就是实现一个toString()方法,需要输出结构体就调用一下toString()。升级实现int id;升级用法不过我们可以通过友元函数的方式重载qDebug,来支持自定义类型输出。并且还可以在结构体前后或中间随意的添加标记,诸如结构体前缀,成员变量标记,更明显的看出来这是哪个结构体的信息。终极实现int id;转载 2023-07-06 14:11:44 · 2824 阅读 · 0 评论 -
Qt之Qt4和Qt5的环境变量区别(QPA和QWS)
QWS(Qt Windows System)是QT自行开发的窗口系统,体系结构类似X Windows,是一个C/S结构,由QWS Server在物理设备上显示,由QWS Client实现界面,两者通过socket进行彼此的通讯。在嵌入式Linux系统中,有许多平台插件,如EGLFS、LinuxFB、DirectFB、XCB、Wayland,具体使用哪一个,可通过配置选择,在许多板子上默认选择了eglfs,选择其它插件时可设置QT_QPA_PLATFORM环境变量或-platform命令行参数。转载 2023-07-06 14:03:25 · 345 阅读 · 0 评论 -
QT5.5移植全攻略
这里需要说明的是sysroot,指定了sysroot,编译器就会到sysroot目录去找头文件和库,否则就会去本机找,网上的移植过程基本都没设置这个路径,在qt的官网上可以找到这个说明。,设置了sysroot之后,这个目录就是根目录了,prefix是相对于这个目录来安装的,也就是说make install后,qt的库安装到了。选项,这个是为了跟以前的兼容,这里没有加,如果加上也没问题,加上之后会碰到编译上的一些问题,这个在编译小节里说明。这个配置可能会提示跟xcb相关的东西,按照提示安装相关软件即可。转载 2023-07-06 14:00:30 · 151 阅读 · 0 评论 -
移植Qt5.12.9
可以直接移植到自己编译的文件系统里。按如下步骤配置,选择 Compiler path 的路径为我们安装的交叉编译器路径/usr/local/arm/gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf/bin/arm-linux-gnueabihf-g++。我们可以在Qt下载地址https://download.qt.io/找到https://download.qt.io/archive/qt/5.12/5.12.9/single/,进入下载页面如下。转载 2023-07-06 13:53:42 · 897 阅读 · 0 评论 -
QT4、5、6各版本之间的特点和选择
Qt5.7.0是最后支持xp系统的非长期支持版本。3、转载 2023-07-06 13:44:57 · 4419 阅读 · 1 评论