- 博客(127)
- 资源 (21)
- 收藏
- 关注
原创 Ubuntu ARMv8编译Qt源码以及QtCreator
最近需要在NVIDIA小盒子上面跑一个程序,一开始想着在Ubuntu x64下交叉编译一版,后来发现libqxcb.so这个库在configure时就会一直报错,多方查找怀疑可能是由于硬件不支持在x64环境下编译AMR架构的xcb库。所以最后在ARM下直接编译Qt源码了,在ARM下是可以编译成功libqxcb.so的,由于没有ARM下的QtCreator所以需要一起编译。
2023-10-26 14:27:03
1595
原创 线程在使用中的一点点心得
1、线程复用时,数据一定不要存放在线程中,任务委托类自己存放,避免接受新任务或销毁线程时导致的无法获取到数据。2、线程复用并判断是否可以接受新任务时,一定要考虑任务委托类中是否有和线程类中的状态判断,如果有一定要当相关判断脱钩后再接取新任务。
2023-03-17 18:38:30
587
原创 Qt代码单元测试以及报告生成
单元测试是所有测试中最底层的一类测试,是第一个环节,也是最重要的一个环节,是唯一一次有保证能够代码覆盖率达到100%的测试,是整个软件测试过程的基础和前提,单元测试防止了开发的后期因bug过多而失控,单元测试的性价比是最好的。覆盖率(code coverage rate)是反映测试用例对被测软件覆盖程度的重要指标,也是衡量测试工作进展情况的重要指标。在代码逻辑比较复杂的情况下,测试工作往往只能覆盖到显而易见的逻辑分支,而更多的深层次的逻辑分支则不容易被测试人员发现。
2023-02-17 17:13:09
3077
3
原创 基础算法——希尔排序
希尔排序可以说是插入排序的一种变种。希尔排序的思想是采用插入排序的方法,先让数组中任意间隔为 h 的元素有序,刚开始 h 的大小可以是h = n / 2,接着让 h = n / 4,让 h 一直缩小,当 h = 1 时,也就是此时数组中任意间隔为1的元素有序,此时的数组就是有序的了。...
2022-08-07 21:19:19
387
原创 基础算法——插入排序
插入排序是在一个已经有序的小序列的基础上,一次插入一个元素。当然,刚开始这个有序的小序列只有1个元素,就是第一个元素。比较是从有序序列的末尾开 始,也就是想要插入的元素和已经有序的最大者开始比起,如果比它大则直接插入在其后面,否则一直往前找直到找到它该插入的位置。如果碰见一个和插入元素相 等的,那么插入元素把想插入的元素放在相等元素的后面。............
2022-08-07 16:42:48
138
原创 基础算法——选择排序
选择排序是给每个位置选择当前元素最小的,比如给第一个位置选择最小的,在剩余元素里面给>二个元素选择第二小的,依次类推,直到第n-1个元素,第n个 元素不用选择了,因为只剩下它一个最大的元素了。............
2022-08-05 16:46:22
137
原创 Linux常用命令
rm命令的主要作用:删除一个目录中的一个或多个文件或目录,如果没有使用-r选项,则rm不会删除目录。ls命令介绍:list的缩写,通过ls命令不仅可以查看linux文件夹包含的文件,而且可以查看文件权限(包括目录、文件夹、文件权限)。...
2022-07-14 20:12:21
127
原创 数据结构(链表合并、查找两个链表的交点、链表求环)
统一使用结构体struct ListNode{ int val; ListNode *next; ListNode(int x) : val(x), next(NULL){}};链表合并假设 两个链表中数据都是有序链表,将两个链表按从小到大合并 // 链表1 ListNode a(10); ListNode b(20); ListNode c(30); ListNode d(40); ListNode e(50); a.ne
2021-12-10 18:03:37
849
1
原创 go 语言开发环境的安装以及IDE
开发环境及IDE:go语言开发环境的下载:https://golang.google.cn/dl/IDE下载路径:https://sourceforge.net/projects/liteide/files/学习资料:go中文社区:https://studygolang.comgo中文在线文档:https://studygolang.com/pkgdoc注意Windows下下载最新开发环境会报错:‘#’ must be first item on line没有找到解决方案,安装 1.9开
2021-08-18 18:40:39
1114
原创 QMediaPlayer 播放视频(MP4、MP3...)
.pro中QT += multimediaQT += multimediawidgets常用类:#include <QVideoWidget>#include <QMediaPlayer>#include <QMediaPlaylist>具体使用:player = new QMediaPlayer();// 加载多个时playlist = new QMediaPlaylist(player);playlist->a
2021-07-26 21:30:18
1368
原创 double转QString(不四舍五入)
// double 转 QString (截取两位小数)QString doubleToQString(double dValue){ QString qstrValue = QString("%1").arg(dValue); if(-1 == qstrValue.indexOf('.')) { qstrValue = QString("%1.00").arg(qstrValue); } else { if(2 == (qstr
2021-06-04 20:30:53
6955
原创 Ubuntu下QT 无法中文输入时 编译libfcitxplatforminputcontextplugin动态库
首先建议通过以下步骤先确认 fcitx 下的qt 中文输入支持库能否解决中文输入问题(因为编译实在是比较麻烦)sudo apt-get install fcitx-frontend-qt5sudo apt-get install fcitx-libs-qt5到 /usr/lib/x86_64-linux-gnu/qt5/plugins/platforminputcontexts 路径下查找 libfcitxplatforminputcontextplugin.so文件分别复制到 QT 安装目录下的
2021-02-24 10:51:44
1838
原创 C++ signal介绍及发布版中捕获崩溃信息方法(文件)
#include <stdio.h>#include <signal.h>#include <time.h>#include <execinfo.h> // 该文件只有Linux下 gcc 和 clang 中存在#include <string>const int MAX_STACK_FRAMES = 128;void sig_crash(int sig){ FILE* fd; struct stat buf;
2020-12-25 14:50:48
1964
原创 Qt IFW打包安装包---(基础介绍)
Qt IFW介绍:全称:Qt Installer Framework概述: Qt安装程序框架提供了一组工具和实用程序,只需创建安装程序一次,无需改动源码,即可将它们部署在所有支持桌面QT的平台。 安装程序将在运行它们的平台上具有原生外观和感觉,支持:Linux,Microsoft Windows和OS X. Qt安装程序框架工具生成安装程
2020-10-28 18:15:32
2198
1
原创 各种环境下C语言编程环境搭建
Linux下环境搭建通过终端安装// Debian操作系统sudo apt-get install build-essential// RPM操作系统su -c "yum groupinstall development-tools"MacOS下环境搭建通过Apple应用商店下载XCode,如果安装有问题自行通过搜索引擎解决Windows下环境搭建方法较多,可以考虑一下几种:VC6.0sublime text3Code::Blocksnotepad++注意建议在学习阶段的
2020-10-11 23:14:09
275
原创 Linux下通过dpkg生成.dep安装包
1、制作安装包制作安装包的信息1> 生成文件夹 DEBIAN2> 生成文件control,放在DEBIAN下3> control中内容package: *** # 生成的包名,注意不管大小写,安装后系统中只能通过小写查找到version: 1.0.0 # 版本信息architecture: amd64 # 系统环境maintainer: *** # 维护者description: **** # 描述
2020-09-24 19:32:01
1802
原创 QComboBox选项置灰、不可选择、文本颜色(汉字颜色)
先介绍一下设置方法// index项 设置为不可选择,index代表第几项,0 代表不可选(QVariant::Invalid),-1为可以(代表设置失败,恢复默认)ui->combox->setItemData(index, QVariant(0), Qt::UserRole - 1);// index项 设置背景置灰ui->combox->setItemData(index, QBrush(QColor(192,192,192)), Qt::BackgroundRole
2020-09-17 20:29:28
10994
2
原创 QT 图形视图框架(1)
图形视图框架提供了一个基于图形项的模型视图编程方法,主要由场景(QGraphicsScene)、视图(QGraphicsView)和项(QGraphicsItem)三部分组成。多个视图可以查看一个场景,场景中包含各种各样几何形状的图形项。场景QGraphicsScene提供了图形视图框架中的场景,场景拥有以下功能:提供用于管理大量图形项的高速接口传播事件到每一个图形项管理图形项的状态,比如选择和处理焦点提供无变换的渲染功能,主要用于打印QGraphicsScene的事件传播构架可以将场景事
2020-08-05 09:28:04
482
原创 Git 上传代码碰到以下问题解决方法
持续更新中。。。基础命令上传代码下载代码碰掉以下情况解决方法当本地第一次下载远程仓库代码,上传时出现1、提示第二个红框中错误时,到此次上传代码的.git所在目录,进入到.git然后进入 hooks/执行 scp -p -P 29418 ad@192.168.1.99:hooks/commit-msg (第三个红色框中部分内容)2、完成后,执行git commit --amend3、再次执行下图中代码,如果又报错和下图中错误一样的话,上传使用 git push origin HEA
2020-07-30 20:57:11
403
1
原创 QT QTabWidget 、布局控件 动态添加窗口(控件)、删除窗口(控件)方案
new 一个窗口或者控件QTabWidget addTab将新建的控件放到一个容器中,比如 QMap<QString , Widget *> m_qmapWidget;QString 部分用来存放 tab的 文本内容,方便后面查找widget 存放对应的窗口删除 tab通过 1> removeTab(int index) 删除部分 2> clear()删除全部同理QVBoxLayout QHBoxLayout QGridLayout添加: addWidg.
2020-07-30 20:06:21
5808
原创 QT 常用样式表总结(一)
滚动条ui->QTableView->verticalScrollBar() // 竖轴ui->QTableView->horizontalScrollBar() // 横轴"QScrollBar:vertical{" //垂直方向 "background:#FFFFFF;" //背景色 "padding-top:20px;" //上预留位置(放置向上箭头) "padding-bottom:20px;" //下预留位置(放置
2020-07-23 09:17:51
710
原创 Qt QMainWindow 中菜单栏(QMenuBar)和工具栏(QToolBar)中间的缝隙去掉方法
缝隙产生的原因:工具栏(`QToolBar`)有边框导致,去掉边框或者设置为1px都可以具体有以下两种方法:可以通过UI界面进行设置将样式 "QToolBar{border-color: rgb(0, 0, 0);border:1px solid;}" 复制到此处,此样式是将工具栏边框宽度设置为 1px,边框颜色为黑色,去掉边框是将 1px solid替换成 none即可直接代码中设置ui->mainToolBar->setStyleSheet("QToolBar{
2020-07-07 20:58:25
3239
原创 QTableView、QStandardItemModel、QItemSelectionModel的使用介绍
控件介绍QTableView二维数据表视图组件,有多个行和多个列,每个基本显示单元是一个单元格,通过 setModel() 函数设置一个QStandardItemModel 类的数据模型之后,一个单元格显示 QStandardItemModel 数据模型中的一个项。QStandardItemModel基于项数据的标准数据模型,可以处理二维数据。维护一个二维的项数据数组,每个项是一个 QStandardltem 类的变量,用于存储项的数据、字体格式、对齐方式等。QItemSelectionMode
2020-07-01 09:23:53
2672
原创 Qt应用程序的单例化(程序只运行一个实例)
应用程序的单例化,顾名思义,就是有且只有一个应用程序实例存在。现在了解到的单例化方式有三种,分别通过共享内存、QtSingleApplication、文件锁实现个人推荐使用文件锁,比较方便,快捷1、文件锁(QLockFile)文件锁的方式就是程序在启动时先检测是否有文件锁存在且文件锁是否有效来达到锁定程序的目的。主要通过QLockFile实现,关键代码: // 本测试程序id取名为SingleApp QString path = QDir::temp().absoluteFileP
2020-05-25 09:32:26
4943
2
自定义时间轴,主要是用来显示一些时间片的内容
2022-07-27
LAVFilters-0.75.1-Installer.exe
2021-07-26
StandardltemModel.rar
2020-06-30
更新后的LOG.zip
2020-04-03
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人