QT
文章平均质量分 62
兜黎
天下难事,
必作于易;
天下大事,
必作于细。
展开
-
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 · 1216 阅读 · 0 评论 -
Qt https/http超时设置
https、http超时设置;QNetworkAccessManager retry重试机制原创 2023-04-03 13:12:26 · 1175 阅读 · 1 评论 -
https 大文件分块上传思路总结
https大文件分块上传思路总结原创 2023-03-23 15:46:39 · 543 阅读 · 0 评论 -
Qt代码单元测试以及报告生成
单元测试是所有测试中最底层的一类测试,是第一个环节,也是最重要的一个环节,是唯一一次有保证能够代码覆盖率达到100%的测试,是整个软件测试过程的基础和前提,单元测试防止了开发的后期因bug过多而失控,单元测试的性价比是最好的。覆盖率(code coverage rate)是反映测试用例对被测软件覆盖程度的重要指标,也是衡量测试工作进展情况的重要指标。在代码逻辑比较复杂的情况下,测试工作往往只能覆盖到显而易见的逻辑分支,而更多的深层次的逻辑分支则不容易被测试人员发现。原创 2023-02-17 17:13:09 · 2332 阅读 · 3 评论 -
pyQt5和pySide2 环境配置以及部分问题解决方案
pyQt5 和 pySide2 环境配置以及部分问题解决方案原创 2022-12-21 18:45:37 · 993 阅读 · 0 评论 -
自定义时间轴
自定义时间轴主要分为一下几个部分:动作图元,事件图元,事件文本图元,文件结束标志图元,时间轴图元和当前时间位置图元原创 2022-08-04 18:11:06 · 1061 阅读 · 2 评论 -
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 · 1221 阅读 · 0 评论 -
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 · 6129 阅读 · 0 评论 -
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 · 1636 阅读 · 0 评论 -
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 · 1637 阅读 · 0 评论 -
Qt IFW打包安装包---(基础介绍)
Qt IFW介绍:全称:Qt Installer Framework概述: Qt安装程序框架提供了一组工具和实用程序,只需创建安装程序一次,无需改动源码,即可将它们部署在所有支持桌面QT的平台。 安装程序将在运行它们的平台上具有原生外观和感觉,支持:Linux,Microsoft Windows和OS X. Qt安装程序框架工具生成安装程原创 2020-10-28 18:15:32 · 1728 阅读 · 1 评论 -
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 · 1534 阅读 · 0 评论 -
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 · 9699 阅读 · 2 评论 -
QT 图形视图框架(1)
图形视图框架提供了一个基于图形项的模型视图编程方法,主要由场景(QGraphicsScene)、视图(QGraphicsView)和项(QGraphicsItem)三部分组成。多个视图可以查看一个场景,场景中包含各种各样几何形状的图形项。场景QGraphicsScene提供了图形视图框架中的场景,场景拥有以下功能:提供用于管理大量图形项的高速接口传播事件到每一个图形项管理图形项的状态,比如选择和处理焦点提供无变换的渲染功能,主要用于打印QGraphicsScene的事件传播构架可以将场景事原创 2020-08-05 09:28:04 · 395 阅读 · 0 评论 -
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 · 5468 阅读 · 0 评论 -
QT 常用样式表总结(一)
滚动条ui->QTableView->verticalScrollBar() // 竖轴ui->QTableView->horizontalScrollBar() // 横轴"QScrollBar:vertical{" //垂直方向 "background:#FFFFFF;" //背景色 "padding-top:20px;" //上预留位置(放置向上箭头) "padding-bottom:20px;" //下预留位置(放置原创 2020-07-23 09:17:51 · 617 阅读 · 0 评论 -
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 · 2791 阅读 · 0 评论 -
QTableView、QStandardItemModel、QItemSelectionModel的使用介绍
控件介绍QTableView二维数据表视图组件,有多个行和多个列,每个基本显示单元是一个单元格,通过 setModel() 函数设置一个QStandardItemModel 类的数据模型之后,一个单元格显示 QStandardItemModel 数据模型中的一个项。QStandardItemModel基于项数据的标准数据模型,可以处理二维数据。维护一个二维的项数据数组,每个项是一个 QStandardltem 类的变量,用于存储项的数据、字体格式、对齐方式等。QItemSelectionMode原创 2020-07-01 09:23:53 · 2437 阅读 · 0 评论 -
Qt应用程序的单例化(程序只运行一个实例)
应用程序的单例化,顾名思义,就是有且只有一个应用程序实例存在。现在了解到的单例化方式有三种,分别通过共享内存、QtSingleApplication、文件锁实现个人推荐使用文件锁,比较方便,快捷1、文件锁(QLockFile)文件锁的方式就是程序在启动时先检测是否有文件锁存在且文件锁是否有效来达到锁定程序的目的。主要通过QLockFile实现,关键代码: // 本测试程序id取名为SingleApp QString path = QDir::temp().absoluteFileP原创 2020-05-25 09:32:26 · 3821 阅读 · 1 评论 -
QT资源文件中图片加载空白问题
QT在Linux下手动抽库时出现缺库情况;加载图片(无论资源文件中的还是电脑本地文件)失败;原创 2020-05-09 10:47:00 · 1895 阅读 · 0 评论 -
QTcpSocket断网重连(二)
上一篇QTcpSocket断网重连地址:QTcpSocket断网重连(一)在第一篇中Linux下有一个潜在的bug,不会影响到客户端,但是对服务器端会有一定影响,在服务器端物理断网的情况下,会出现一旦服务器恢复网络后客户端断网重连时,会出现服务器端有多个端口连接情况。但是客户端这边检查只有一次连接,所以这个现在只能猜测出现bug原因。通过这一篇中代码的测试,有以下猜测:abort()---...原创 2020-04-21 10:44:55 · 4385 阅读 · 0 评论 -
Qt_QML动画(Animations)___一
动画的解释:动画被用于属性的改变。一个动画定义了属性值改变的曲线, 将一个属性值变化从一个值过渡到另一个值。动画是由一连串的目标属性活动定义的, 平缓的曲线算法能够引发一个定义时间内属性的持续变化。 所有在QtQuick中的动画都由同一个计时器来控制, 因此它们始终都保持同步, 这也提高了动画的性能和显示效果。动画控制了属性的改变, 每个元素都有大量的属性供你任意使用。Image { ...原创 2020-04-12 01:16:28 · 870 阅读 · 0 评论 -
QFtp在QT5版本下使用时遇到部分问题解决方案
QFtp QFtp在QT5版本之后就被QNetworkAccessManager代替,但是QNetworkAccessManager仅支持ftp的上传put和下载get,对于没有需要ftp以下功能的还是建议使用QNetworkAccessManager,主要包括:list()、cd()、remove()、mkdir...原创 2020-04-11 23:34:36 · 2093 阅读 · 3 评论 -
Qt_QML输入元素(Input Element)
文本编辑元素:TextInput(文本输入) 和TextEdit(文本编辑)文本输入(TextInput)文本输入允许用户输入一行文本。 这个元素支持使用正则表达式验证器来限制输入和输入掩码的模式设置。KeyNavigation( 按键向导)通过按键切换光标,比如:KeyNavigation.tab: input1 (Tab键切换,input1 为id)焦点区域( FocusScope)...原创 2020-04-11 22:08:30 · 538 阅读 · 0 评论 -
Qt_QML布局元素( Layout Items)
QML使用anchors(锚)对元素进行布局。 anchoring(锚定) 是基础元素对象的基本属性, 可以被所有的可视化QML元素使用。 一个anchors(锚)就像一个协议,并且比几何变化更加强大。 Anchors(锚)是相对关系的表达式, 你通常需要与其它元素搭配使用。一个元素有6条锚定线( top顶,bottom底,left左,right右,horizontalCenter水平中,ve...原创 2020-04-11 19:07:48 · 534 阅读 · 0 评论 -
Qt_QML定位元素学习
Column(列)元素将它的子对象通过顶部对齐的列方式进行排列。spacing属性用来设置每个元素之间的间隔大小。Row(行)元素将它的子对象从左到右,或者从右到左依次排列,排列方式取决于layoutDirection属性。spacing属性用来设置每个元素之间的间隔大小。Grid(栅格)元素通过设置rows(行数)和columns(列数)将子对象排列在一个栅格中。可以只限制行数或者列数。如...原创 2020-04-10 17:49:59 · 283 阅读 · 0 评论 -
Qt_QML基础元素对象
基本元素(Basic Elements) 元素可以被分为可视化元素与非可视化元素。一个可视化元素(例如矩形框Rectangle)有着几何形状并且可以在屏幕上显示。 一个非可视化元素(例如计时器Timer) 提供了常用的功能, 通常用于操作可视化元素。 &...原创 2020-04-09 18:12:05 · 242 阅读 · 0 评论 -
Qt 模块(启动QML程序最小模块)
Qt模块模块描述Core核心的非图形类, 供其它模块使用。GUI图形用户界面( GUI) 组件的基类, 包括OpenGL。Multimedia音频, 视频, 电台, 摄像头的功能类。Network简化方便的网络编程的类。QMLQML类与JavaScript语言的支持。Quick可高度动态构建的自定义应用程序用户界面框架。SQL...原创 2020-04-09 11:24:58 · 333 阅读 · 0 评论 -
QT 生成多目录项目
1、生成主工程项目2、添加子工程(1)有现有工程的情况添加后对项目进行重构,这个时候就会将目录下的工程导入,需要注意的是,有些添加子工程的项目会报错,这个时候需要修改项目路径或者头文件引用路径(2)新建工程的情况接来下按照正常新建工程步骤进行即可,最后结果如下图...原创 2020-04-08 18:48:15 · 609 阅读 · 1 评论 -
Qt QTcpSocket断网重连(一)
在网络传输中,会出现各种各样的情况,在长链接的使用中断网重连机制就显得尤为重要了。一、需要断网重连的情况接收不到数据的情况(网络闪断)接收到数据为空二、断网检查方式通过接收到数据是否 <= 0 判断,如果 <= 0 说明已经断开连接了判断一段时间内是否有接收到数据(长链接一般有心跳包进行链接诊断)三、代码实现.h部分#ifndef TCPTHREAD_H#...原创 2020-04-04 16:01:48 · 7626 阅读 · 0 评论 -
QT log日志的使用(二)
在第一篇中有人问,如果qInstallMessageHandler注册函数注册不了的情况下怎么办,在这里说一下我现在日志文件使用的方法,以及写多个日志文件时我的方案。先附一个第一篇log日志的原文,有需要的可以进去看一下:https://blog.csdn.net/bloke_come/article/details/76090845这里说一下,这一篇写日志的思路,来源于第一篇,原来需要注册,......原创 2020-03-26 19:14:24 · 1124 阅读 · 0 评论 -
.ini文件介绍以及QSettings写入、读取ini文件
先介绍一下ini文件:.ini 文件是一种初始化文件,是windows的系统配置文件所采用的存储格式,统管windows的各项配置,一般用户就用windows提供的各项图形化管理界面就可实现相同的配置了.ini文件使用中发现的一些优点:1、可以多个程序同时操作一个ini文件,不用担心有问题怎么滴...原创 2020-03-26 09:33:00 · 1879 阅读 · 0 评论 -
QT 网络编程之https
HTTP超文本传输协议,是一个基于请求与响应,无状态的,应用层的协议,常基于TCP/IP协议传输数据,互联网上应用最为广泛的一种网络协议,所有的WWW文件都必须遵守这个标准。设计HTTP的初衷是为了提供一种发布和接收HTML页面的方法。HTTPS(Hyper Text Transfer Protocol over SecureSocket Layer)的介绍:以安全为目标的 HTTP ...原创 2019-12-30 16:51:26 · 1329 阅读 · 4 评论 -
QT 在运行exe时不同启动方式,导致程序中的路径问题
exe在启动中,有两种启动方式:一种自己手动双击启动,一种是通过其他程序调用启动,这时这两种方式如果用QDir::currentPath获取路径的话就有可能会导致出现问题,下面说下情况: 手动双击启动,这个时候获取到的路径是完全没有...原创 2019-12-17 13:54:58 · 923 阅读 · 0 评论 -
math函数中的常用函数
绝对值函数abs求浮点数x的绝对值fabs余弦函数cos正弦函数sin正切函数tan反余弦函数acos反正弦函数asin反正切函数atan 和 atan2 都是求反正切函数,如:有两个点 point(x1,y1), 和 point(x2,y2);那么这两个点形成的斜率的角度计算方法分别是:float angle = atan( (y2-y1)/(x2...原创 2019-12-09 11:02:00 · 355 阅读 · 0 评论 -
QTcpServer服务器(incomingConnection方式)
最近研究想着研究一下QT 的服务器,了解了一下QT中相关的接口,突然发现incomingConnection这个方式好简单呀,弄好后测试了一下(没有数据那种,只是简单的收到确认和回复(打开33个client客户端),不保证大批量的数据处理的效率)首先要弄一个数据接收已经处理的socket,只要readyRead和disconnected就行,一个用来接收数据,一个用来销毁连接// 头文件#i...原创 2019-12-05 15:34:49 · 11703 阅读 · 6 评论 -
QT在Linux下的安装和卸载
QT 的安装和卸载其实步骤和Windows下的基本相似,只是Windows打开的是exe,Linux打开的是二进制文件安装一开始各种问题,处理完问题才开始写的,网上有一些非必要的引导,这里纠正一些,有人说安装的时候要root权限,使用的时候发现挺麻烦的,而且也不是必须要root权限(可能是个人没有涉及到必须root权限执行),只要步骤正确即可安装时候只要进入二进制文件所在目录或者指向所在目录...原创 2019-11-09 13:52:10 · 3086 阅读 · 0 评论 -
QT windows程序移植到Linux下一些问题以及解决方案
1、一进来就遇到问题cannot run compiler 'clang++'. output这个问题要三步解决1、sudo apt-get install clang2、sudo apt-get install build-essential3、sudo apt-get install libqt4-dev...原创 2019-11-08 18:52:21 · 4972 阅读 · 0 评论 -
QT 将可执行文件生成可以在其他Linux下运行的包
说实话这个问题搞了好久,错误原因很简单,但是一开始没有往哪里想,这里总结一下,为后面再次弄得时候打个样1、将二进制文件拷贝出来(和Windows下的exe相同的文件),放在一个新文件夹下面2、生成pack.sh脚本,用来到处需要的库文件(可以向通过ldd命令查看要那些库文件)#!/bin/bashLibDir=$PWD"/lib"Target=$1lib_array=($(ldd ......原创 2019-11-08 18:47:35 · 5137 阅读 · 8 评论 -
Qt Quick学习二之控件
按键响应事件 KeyEventRectangle{ width: 300; height: 200; color: "#c0c0c0"; focus: true; Keys.enab1ed:true; Keys.onEscapePressed:Qt.quit(); Keys.onBackPressed: Qt.quit(); ...原创 2018-07-05 14:39:10 · 564 阅读 · 0 评论