![](https://img-blog.csdnimg.cn/20201014180756757.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
QT
文章平均质量分 72
夏天匆匆2过
生于忧患死于安乐
展开
-
Qt程序打包成安装包exe
Qt开发的程序打包成安装包,程序打包成install.exe,设置软件名称,软件版本号,发布者,可双击安装,有默认安装路径,也可以选择安装目录,自动生成桌面快捷方式和开始菜单选项,可以在操作系统-->设置-->应用程序里看到,可卸载。QtInstallerFramework-win-x86.exe,maintenancetool.exe。原创 2022-11-19 19:45:28 · 4857 阅读 · 1 评论 -
windbg调试分析dump工具,使用windbg分析Qt崩溃原因
在非开发环境,windbg工具可以对.exe可执行文件进行调试,也可以分析dump文件,是release版本运行模式解决bug的神器,分析崩溃crash,windbg下载和安装,windbg调试exe可执行文件,windbg分析dump文件,生成.pdb符号文件,windbg常用命令.sympath srv*,.reload,x testDump!*,bm ,bl,g,k,dv /t,~,~0s,~*kv,qd,!analyze -v等。原创 2022-11-05 17:33:02 · 2303 阅读 · 1 评论 -
C++/windows开发备忘录
windows使用cmd命令行g++编译C++源文件,常用工具Everything、BeyondCompare、Wireshark、SourceTree、Qt下载,几个国内的镜像、dumpbin、depends、ProcessExplorer、VLD内存泄漏检测,Windows中使用命令行杀进程。QT5.15.2+VS2019环境搭建。由于找不到MSVCR100.dll,无法继续执行代码;应用程序无法正常启动0xc000007b原创 2022-11-02 22:22:37 · 5442 阅读 · 1 评论 -
QT使用QSocketNotifier监听socket事件
QSocketNotifier使用介绍,QSocketNotifier监听tcpsocket接收数据,QSocketNotifier监听netlink套接字,监控USB热插拔测试原创 2022-07-23 11:23:15 · 1975 阅读 · 0 评论 -
QT实现后台服务,linux下使用systemd管理QT后台服务
QT实现后台服务,使用QtService,linux,ubuntu环境,systemctl管理后台服务,systemctl常用命令,unit配置文件,Service部分详解,Install部分详解,systemd管理Qt开发的后台程序原创 2022-07-07 23:01:45 · 3854 阅读 · 6 评论 -
Qt使用Valgrind分析内存泄漏
QT下Valgrind安装和使用:Valgrind是linux下内存泄漏检测性能分析工具,Memcheck检测内存问题。不匹配的方式释放内存(Mismatched free),重复释放Invalid free(),未释放内存(*bytes in 1 blocks are definitely lost in loss record*),使用和释放未分配内存的野指针(Use of uninitialised value of size),使用已释放的野指针/数组越界Invalid read of size。原创 2022-06-19 22:55:42 · 5397 阅读 · 2 评论 -
C/C++/QT中的字符串
目录C语言中的字符串C++语言中的字符串C语言str系列库函数sizeof()、strlen()、length()和size()Qt中的字符串C语言中的字符串C语言不存在字符串数据类型,其通过一个以’\0’结尾的字符数组实现;所有字符串都是以\0结尾的,所有以\0结尾的字符数组都可以看作字符串。字符数组的定义,常见有如下几种形式:char a[10] ={‘a’,‘b’,‘c’,‘d’,‘e’,‘f’,‘g’,‘h’,‘i’,‘j’};char a[10] ={‘a’,‘b’,‘c’,‘d’,‘e原创 2022-05-03 18:25:40 · 3728 阅读 · 0 评论 -
Qt+ubuntu+ffmpeg环境搭建,ffmpeg库的编译与调用
编译环境建议切换到root下操作下载ffmpeg源码我下载的是4.06版本,ffmpeg-4.0.6.tar.bz2http://www.ffmpeg.org/download.html[安装yasm]新建文件夹/opt/ffmpeglib/,cd进来依次执行wget http://www.tortall.net/projects/yasm/releases/yasm-1.3.0.tar.gztar xvzf yasm-1.3.0.tar.gzcd yasm-1.3.0./configur原创 2021-09-14 13:58:46 · 2095 阅读 · 1 评论 -
QT文件读写:QFile、QDataStream、QTextStream、QBuffer
QFileQFile读文件:void Widget::QFile_Read(){ //获取文件路径(文件名) QString path = QFileDialog::getOpenFileName(this,"打开","../","TXT(*.txt)"); if(path.isEmpty() == false) { //创建文件对象 QFile file(path); //打开文件,只读方式 bool原创 2020-11-30 15:51:28 · 1152 阅读 · 0 评论 -
Qt实现tcp服务端和客户端
Qt实现tcp服务端和客户端,服务端有两个套接字:监听套接字QTcpServer和通信套接字QTcpSocket,客户端只有一个通信套接字QTcpSocket。原创 2020-11-30 16:40:06 · 1567 阅读 · 0 评论 -
Qt实现多线程的两种方式:重写run()和moveToThread(),connect第五个参数说明
重写QThread的虚函数run()mythread.h#ifndef MYTHREAD_H#define MYTHREAD_H#include <QThread>//头文件和基类由QObject改成QThreadclass MyThread : public QThread{ Q_OBJECTpublic: explicit MyThread(QObject *parent = nullptr);protected: //QThread的虚函数原创 2020-11-30 17:39:59 · 1371 阅读 · 0 评论 -
QT简单pro文件和main.cpp介绍
QT简单pro文件和main.cpp介绍pro文件main.cpppro文件#-------------------------------------------------## Project created by QtCreator 2019-05-29T09:26:32##-------------------------------------------------#模块,头文件需要什么模块,在头文件按F1帮助文档查找QT += core gui#高于4版本,添加原创 2020-08-30 14:18:40 · 1022 阅读 · 0 评论 -
QT显示文字、图片、动画、网址链接、数码管、进度条
代码实现#include "mainwindow.h"#include "ui_mainwindow.h"#include<QMovie>MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), ui(new Ui::MainWindow){ ui->setupUi(this); //显示文字 ui->labelText->setText("123");原创 2020-08-30 15:20:16 · 565 阅读 · 0 评论 -
Qt实现tcp发送和接收文件
serverwidget.h#ifndef SERVERWIDGET_H#define SERVERWIDGET_H#ifdef WIN32#pragma execution_character_set("utf-8")#endif#include <QWidget>#include <QTcpServer>//监听套接字#include <QTcpSocket>//通信套接字#include <QFile>#include<QTi原创 2020-11-30 17:08:30 · 5014 阅读 · 1 评论 -
QT之QMainWindow组成介绍
结构图代码实现mainwindow.cpp#include "mainwindow.h"#include<QMenuBar>#include<QMenu>#include<QAction>#include<QDebug>#include<QToolBar>#include<QPushButton>#include<QStatusBar>#include<QLabel>#include&l原创 2020-08-30 14:50:04 · 156 阅读 · 0 评论 -
QT信号与槽,Lambda表达式的使用
QT信号与槽,Lambda表达式的使用通过两个信号与槽机制,实现两个窗口直接的通信mainwidget.h#ifndef MAINWIDGET_H#define MAINWIDGET_H#include <QWidget>#include<QPushButton>#include"subwidget.h"class MainWidget : public QWidget{ Q_OBJECTpublic: MainWidget(QWidget *pa原创 2020-08-30 14:41:12 · 877 阅读 · 0 评论 -
[QT]常用对话框QDialog
本文列举5种类型对话框:模态对话框、非模态对话框、关于对话框、问题对话框、文件对话框。#include "mainwindow.h"#include<QMenu>#include<QMenuBar>#include<QAction>#include<QDialog>#include<QDebug>#include<QMessageBox>#include<QFileDialog>MainWindow::Ma原创 2020-08-30 15:00:50 · 300 阅读 · 0 评论 -
QT窗口绘图,重写绘图事件QPaintEvent
如果在窗口绘图,必须在绘图事件里实现,绘图事件内部自动调用,窗口需要重绘的时候(状态改变)widget.h#ifndef WIDGET_H#define WIDGET_H#include <QWidget>namespace Ui {class Widget;}class Widget : public QWidget{ Q_OBJECTpublic: explicit Widget(QWidget *parent = nullptr); ~Widge原创 2020-11-30 15:25:40 · 6317 阅读 · 0 评论 -
QT事件处理,重写鼠标事件,事件过滤器的使用
重写鼠标点击事件、鼠标释放事件、鼠标移动事件,事件过滤器实现对单个控件的事件处理。重写QLabel类,重新实现鼠标事件mylabel.h#ifndef MYLABEL_H#define MYLABEL_H#include <QLabel>class MyLabel : public QLabel{ Q_OBJECTpublic: explicit MyLabel(QWidget *parent = nullptr);protected: //鼠标点击事件原创 2020-09-15 18:39:48 · 2813 阅读 · 1 评论 -
Qt线程间同步,QWaitCondition和QMutex两种方式
QWaitCondition 用于多线程的同步,一个线程调用QWaitCondition::wait() 阻塞等待,直到另一个线程调用QWaitCondition::wake() 唤醒才继续往下执行。QMutex线程锁实现一个应用程序的各个线程常常需要协同工作,有序使用资源,系统中的一些资源只允许一个线程使用,不允许多个线程同时使用。原创 2022-04-02 14:27:30 · 2758 阅读 · 0 评论 -
Qt实现JSON数据的组包和解包
目录源代码效果图源代码头文件,定义数据结构体#ifndef MAINWINDOW_H#define MAINWINDOW_H#include <QMainWindow>//学生struct Student{ QString name;//姓名 QString age;//年龄 QString score;//得分 Student() { clearStruct(); } void clearStruct()原创 2022-03-21 15:16:25 · 1926 阅读 · 0 评论 -
QT使用FTP同步/异步上传和下载文件,ubuntu下ftp服务器搭建
目录ubuntu下ftp服务器搭建QT实现FTP同步上传,增加超时机制QT实现FTP异步上传和下载本章介绍ubuntu下FTP服务器搭建,使用QT进行FTP同步/异步上传下载,同步模式增加传输超时机制,QT上传下载的代码在windows下通用。ubuntu下ftp服务器搭建安装ftp服务:sudo apt-get install vsftpd修改vsftp的配置文件:sudo gedit /etc/vsftpd.conf将配置文件中”anonymous_enable=YES “改为 “anonym原创 2022-02-24 16:37:28 · 2746 阅读 · 0 评论 -
QT正则表达式
QT正则表达式规则,QT调用正则表达式,QLineEdit使用正则表达式限制输入,常用正则表达式:手机号,email,IP,日期,时间,整数,身份证号码,浮点数等,正则表达式修复JSON键值没有双引号问题。原创 2022-02-18 12:54:49 · 1835 阅读 · 0 评论 -
QLineEdit使用方法总结
QLineEdit常用的方法:设置文本位置,左对齐,居中,右对齐,只读,可选中文本,不可编辑,不能选中文本,设置字体,密码模式显示黑点,设置最多输入的字符数,QIntValidator和QDoubleValidator 限制输入,设置输入提醒,圆角,有颜色边框,输入内容起始位置后移,QLineEdit显示图标,重写QLineEdit,实现点击变色等。原创 2022-01-24 10:56:17 · 4866 阅读 · 0 评论 -
QTableView使用方法小结
本文总结了QTableView常用方法,包括常规的数据显示、表头设置、字体和颜色设置、行列的高宽,显示格式设置等,还有一套分页算法,在QTableView表格里插入QLineEdit、QPushButton、QCheckBox等控件,常用的qss设置等。目录常用设置常用QSS效果图常用设置#include "mainwindow.h"#include "ui_mainwindow.h"MainWindow::MainWindow(QWidget *parent) : QMainWindo原创 2022-01-21 16:59:26 · 5407 阅读 · 0 评论 -
QT生成二维码,linux下qrencode库的编译
目录qrencode库的编译QT调用qrencode库生成二维码qrencode库的编译先编译依赖库libpng和zlib1、zlib库编译下载地址:http://zlib.net/我下载的是zlib-1.2.11.tar.gz,解压缩tar -zxvf zlib-1.2.11.tar.gz进入zlib-1.2.11文件夹依次执行:./configuremakemake install2、libpng库编译下载地址:http://sourceforge.net/projects/li原创 2021-12-02 17:16:23 · 1943 阅读 · 0 评论 -
QT+CEF(Chromium嵌入式框架)环境搭建,CEF库libcef_dll_wrapper.lib编译
上一章使用qt自家的QWebEngineView实现浏览器,存在一定兼容性和稳定性问题:https://blog.csdn.net/weixin_40355471/article/details/120698537本章将使用开源的CEF(Chromium嵌入式框架)实现qt内嵌浏览器,包括CEF库libcef_dll_wrapper.lib的编译、QT下调用库实现内嵌浏览器。使用的环境是cmake-3.21.0-rc3+qt5.13.0+vs2017.资源下载cmake官网下载地址,选择Windo原创 2021-10-14 14:31:06 · 3900 阅读 · 2 评论 -
QT实现浏览器访问网页,使用QWebEngineView
支持访问网页,前进、后退、刷新等环境说明使用QWebEngineView类实现,qt5.6及以上版本;qt安装时需要勾选:Qt WebEngine;由于chrome不支持mingw编译,构建套件只能选择vs的编译器;pro工程文件添加QT += webenginewidgets代码源码比较简单,QWebEngineView不支持点击链接访问,因此需要重写QWebEngineView类。qwebengineviewchw.h#ifndef QWEBENGINEVIEWCHW_H#defin原创 2021-10-11 10:48:03 · 10056 阅读 · 1 评论 -
Qt+ubuntu+RabbitMQ环境搭建,qamqp库的编译与调用
本章介绍RabbitMQ服务器搭建,RabbitMQ依赖库libqamqp的编译,Qt调用libqamqp实现客户端通信。RabbitMQ服务搭建安装Erlang#在系统中加入 erlang apt 仓库wget https://packages.erlang-solutions.com/erlang-solutions_1.0_all.debsudo dpkg -i erlang-solutions_1.0_all.deb#修改 Erlang 镜像地址,把里面默认值替换为:deb https原创 2021-09-28 13:46:00 · 3252 阅读 · 3 评论 -
Qt发起http请求,get和post方式,并接收响应数据
Qt发起http请求,并接收响应数据这里以请求城市天气信息为例,发起get请求,返回天气json数据头文件private: void queryWeather();//查询public slots: void replyFinished(QNetworkReply *reply);//刷新的槽private: QString cityName; QNetworkAccessManager *manager; //请求句柄 QString allinfo;原创 2021-09-07 09:49:58 · 19344 阅读 · 2 评论 -
Qt收发tcp/udp报文,报文解析
Qt中udp和tcp收发方式基本类似发送数据//定义报文结构体//通用报文头格式,所有报文均包含该头部struct VTM_CommonHeader{ unsigned int uType; //业务类型 unsigned int uSize;//报文大小};struct VTM_MSCALL_REQUEST{ VTM_CommonHeader head; unsigned int userNumber;//用户号 char ip[32];//营业员ip地原创 2021-09-02 11:38:53 · 6573 阅读 · 0 评论 -
Qt常用方法总结
Qt界面常用接口、Qt编码转换显示中文、Qt配置文件读写、Qt获取主窗口指针、qt全局信号、Qt判断操作系统类型、Qt判断是debug还是release、Qt调用cmd命令行程序、QProcess调用外部exe程序、github访问加速、Qt常用gitignore、Qt调用A4打印机、QImage与Base64相互转换等, QLabel播放gif,Qt设置半透明gif...原创 2021-08-31 15:36:44 · 1448 阅读 · 0 评论 -
Qt使用QSS样式表
QSS类型选择器选择器 示例 说明通用选择器 * 匹配所有部件类型选择器 QPushButton 匹配QPushButton及其子类的实例属性选择器 QPushButton[flat=”false”] 匹配QPushButton中flat属性为false的实例类选择器 .QPushButton 匹配QPushButton的实例,但不包含子类。相当于*[class~=”QPushButton”]ID选择器 QPushButton#okButton原创 2021-08-31 14:14:26 · 3337 阅读 · 0 评论 -
RTP依赖库jrtp编译,vs版和MinGW版,支持Qt调用
本章主要记录RTP依赖库的编译,使用VS和MinGW的编译方式有所不同。1、资源下载使用CMAKE生成工程文件和makefile:cmake官网下载地址,选择Windows x64 ZIP版本:https://cmake.org/download/jrtplib源码:https://research.edm.uhasselt.be/jori/page/Cs/JrtplibOld.html;jthread源码:https://research.edm.uhasselt.be/jori/page/CS/原创 2021-08-10 18:08:51 · 732 阅读 · 1 评论 -
qt调用zmq消息中间件,zmq库的编译
使用cmake+vs2013编译zmq库,qt调用1、资源下载cmake官网下载地址,选择Windows x64 ZIP版本:https://cmake.org/download/zmq下载地址:https://github.com/zeromq/libzmq2、编译zmq动态库解压缩下载的资源,cmke运行/bin/cmake-gui.exe,选择libzmq解压缩主目录,新建一个构建目录;configure配置构建的vs版本和位数,选择Visual Studio 12 2013和x64,点击原创 2021-07-13 15:13:12 · 2508 阅读 · 0 评论 -
Qt崩溃生成内存镜像,windows下生成dump文件,linux下生成core文件
本文介绍QT程序在崩溃时生成内存镜像文件,windows下生成的叫dump文件,linux下生成的叫core文件。linux环境生成core文件linux环境下崩溃生成的是core文件,系统默认不生成;ulimit -c,返回0既是不生成core文件;ulimit -c unlimited,设置当前终端生成不限制大小的core文件;设置整个系统自动生成core文件,编辑/root/.bash_profile文件,在其中加入ulitmit -S -c unlimited,执行source /root原创 2021-05-27 18:09:51 · 2713 阅读 · 0 评论 -
qt自启动设置,qt创建快捷方式和qt修改注册表,windows环境
windows环境,QT开发的程序设置开机自启动,需要注意,以下修改注册表的操作均需要以管理员身份运行,在qt开发阶段也需要以管理员身份运行qt。修改注册表设置开机自启动void Instance::appAutoRun(bool bAutoRun){ QSettings reg("HKEY_CURRENT_USER\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run",QSettings::NativeFormat); if (b原创 2021-05-08 15:47:38 · 1198 阅读 · 0 评论 -
Qt压缩解压缩zip文件,解压缩加密zip文件
本文是windows系统,MinGW64位环境,MSVC编译环境下在quazipd和libz库的编译过程有所不同。编译libz.a库第一步,搭建MSYS环境下载地址:https://sourceforge.net/projects/mingwbuilds/files/external-binary-packages/解压缩在C盘,这里是模拟linux系统环境,解压缩后运行 msys.bat 就可以加载msys,并且把qt的mgw安装目录加入到系统环境变量:C:\Qt\Qt5.12.2\Tools\m原创 2021-04-28 18:27:40 · 2091 阅读 · 1 评论 -
QT播放视频QMediaPlayer
pro文件添加QT +=multimedia multimediawidgets;UI界面拖拽一个QWidget,右键提升为QVideoWidget;定义QMediaPlayer对象QMediaPlayer *pMediaPlayer0;pMediaPlayer0 = new QMediaPlayer(this);ui->videowidget->setAspectRatioMode(Qt::IgnoreAspectRatio);//自适应铺满界面pMediaPlayer0->原创 2021-04-22 18:10:00 · 3502 阅读 · 9 评论 -
Qt中使用qml语法
qt中使用qml语法在Qt Widgets中使用qml新建一个qml工程运行效果图在Qt Widgets中使用qml在QT的ui界面使用qml基本方法:1、qt最低版本:最低版本:Qt 5.32、pro文件加载模块QT += quickwidgets3、在ui界面添加控件QQuickWidget4、右键add new选择QT-QT Resoure File,添加资源文件5、在添加的资源文件右键add new,选择QT-QML file,添加qml文件6、把qml文件显示到quickWidge原创 2021-04-11 19:05:48 · 5305 阅读 · 0 评论