![](https://img-blog.csdnimg.cn/20201014180756930.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
QT
GreenHandBruce
本人有多年qt开发经验,欢迎技术交流weixin:13382893223
展开
-
qt显示图片并转换成灰度图及伪彩图
【代码】qt显示图片并转换成灰度图及伪彩图。原创 2023-08-20 10:01:38 · 1596 阅读 · 0 评论 -
qt重写QTreeWidget实现拖动item到树的顶部的时候,树滚轮上移,拖动item到底部的时候,树滚轮下移
qt重写QTreeWidget实现拖动item到树的顶部的时候,树滚轮上移,拖动item到底部的时候,树滚轮下移原创 2023-04-28 10:41:04 · 594 阅读 · 0 评论 -
QMediaPlayer+重写继承自QAbstractVideoSurface的类实现视频播放截图
QMediaPlayer+重写继承自QAbstractVideoSurface的类实现视频播放截图原创 2023-04-20 17:19:23 · 670 阅读 · 0 评论 -
QUrl转QString及QString转QUrl
QUrl转QString及QString转QUrl原创 2023-04-19 11:30:05 · 1353 阅读 · 0 评论 -
qt编写的视频播放器,windows下使用,精致小巧
qt编写的视频播放器,windows下使用,精致小巧,1.基于qt自带的QMediaPlayer和QVideoWidget类编写2.有暂停播放功能、视频进度条拉动功能,最大化、最小化、还原功能3.按住界面上、下、左、右、右下的边界,可实现拉伸缩放软件窗口,窗口最小可缩小致100*100像素。 (摸鱼必备哦!)4.无论当前界面是最大化还是正常大小,若鼠标不在窗口内,可自动隐藏标题栏,进度条,播放暂停等所有界面按钮,实现整个界面只有视频画面,没有任何影响观影的按钮等控件!5.可使拖动文件播放原创 2023-04-19 09:42:15 · 966 阅读 · 0 评论 -
qt界面最大化-实现在软件所在的显示器最大化和还原窗口大小
【代码】qt界面最大化-实现在软件所在的显示器最大化和还原窗口大小。原创 2023-04-13 15:56:44 · 2174 阅读 · 0 评论 -
Qt中枚举类型转字符串输出(enum转QString)
Qt中枚举类型转字符串输出(enum转QString)原创 2023-04-11 16:13:11 · 8296 阅读 · 3 评论 -
Qt模仿visionpro显示算子输入输出关系图(重写QTreeWidget和QTreeWidgetItem实现)(拖动Item移动位置或绑定输入输出关系)
在qtreewieget中实现右击菜单,用qtreewidget模仿visionpro实现算子输入输出关系显示,拖动Item变换当前位置或绑定输入输出关系,拖动item移动算子位置同时更新输入输出箭头位置,实现按住Ctrl+F键来搜索算子名,若搜索到,则高亮显示原创 2023-04-07 15:38:04 · 747 阅读 · 0 评论 -
qt将文件按创建时间排序(精确到毫秒)
其实我都没有单独做排序的操作,因为QMap是默认按照键的从小到大的顺序排列的,所以当我们将文件创建时间作为key,文件完整路径作为value,然后将每一个文件的创建时间和路径塞进qmap之后,只要遍历一次qmap,即可实现将文件按照创建时间排序!当我们打开电脑文件夹,将文件按照创建日期排序的时候,可以看到,显示创建日期只能精确到分,这时候如果我想看看这个文件具体在几分几秒创建的就没办法看了。然后用QMap m_mapCreateDt_FileName;原创 2022-11-13 14:29:46 · 2607 阅读 · 0 评论 -
qt导出gif每一张图片
用qt写了个小程序,将gif中的每一帧导出成jpg、png、bmp。主要使用QMovie这个类。原创 2022-10-27 17:29:13 · 835 阅读 · 0 评论 -
QT编写实现图片的幻灯片播放、自适应显示、缩放(以鼠标位置为中心进行缩放)、拖动、重置、显示鼠标位置像素坐标及RGB值、播放GIF动画、截图保存、批量保存、拖入文件夹遍历所有文件
代码中重写QGraphicsItem类,重新QLabel类,重写QGraphicsScene类,重写QGraphicsView类,用到了QSetting配置ini文件,用到了多线程,互斥锁,线程间数据的传递,invoke异步调用,用到的qt类有:QKeyEvent,QFileDialog,QList,QMessageBox,QImage,QGraphicsScene,QSettings,QMap,QPixmap等,很适合初学者学习。3.右击可弹出菜单栏,菜单包括:适应宽度,适应窗口,原图大小,截图保存。原创 2022-10-26 17:34:17 · 4168 阅读 · 1 评论 -
qtcreator在qt5.14之后的版本,下拉快捷寻找函数或者自动补全代码功能变的很慢,很卡
qtcreator在qt5.14之后的版本,下拉快捷寻找函数或者自动补全代码功能变的很慢,很卡原创 2022-10-12 16:53:58 · 508 阅读 · 0 评论 -
双击文件打开自己程序时获取的被打开文件路径和QDir获取的文件路径的分隔符不同!切记!
双击文件打开自己程序时获取的被打开文件路径和QDir获取的文件路径的分隔符不同!切记!原创 2022-08-24 14:09:48 · 217 阅读 · 0 评论 -
手把手教你用qt链接sqlserver数据库
手把手教你用qt链接sqlserver2014原创 2022-07-05 17:58:56 · 4112 阅读 · 0 评论 -
qt绘制网络拓补图(连接数据库,递归函数,无限绘制,可拖动节点)
qt实现的绘制网络拓补图,先连接sqlserver数据库获取所有节点数据,然后通过递归函数解析出每个节点之间的关系,并计算每个节点要在图上绘制的位置,然后通过重写的QGraphicsPixmapItem类来绘制节点图,通过重写的QGraphicsItem类来绘制节点之间的连线。只要各节点之间的关系数据正确,可以无限绘制。界面显示如下: 拖动效果如下: sqls......原创 2022-07-02 21:09:56 · 3603 阅读 · 2 评论 -
qt开发的有界面的简易对战游戏——斗罗大PK(可用作c,c++课程设计)
【开发简介】用QtCreator开发环境和c++ 语言来编写一个游戏,名字为《斗罗大PK》。【游戏规则】《斗罗大PK》有 6 位英雄,每位英雄拥有数量不同的 3 种招数,招数使用 数量耗尽之后就不能再使用。 三种招数分别为:剪刀、石头、布; 招数相克关系:剪刀克布,布克石头,石头克剪刀;6 位英雄属性表及所有招数数量: 剪刀 石头 布朱竹清 2 2 2小舞 4 1 1唐三 2 3 1比比东 5 0原创 2022-06-09 19:57:53 · 1362 阅读 · 0 评论 -
qt使用QMetaObject::invokeMethod异步调用或QTimer::singleShot解决很久才能显示界面的问题
Qt Creator 4.11.1Qt 5.14.1 (MSVC 2017, 32 bit)win10系统Thinkpat T590在项目很大的情况下,界面加载的东西会很多,而且必须在主线程中加载,无法用多线程去处理来节省时间,这时候打开程序的时候,双击exe,会过很长时间才能显示界面。这时候,心急的用户可能就想:这破软件是不是没运行起来啊,然后有双击了一下exe,这下好了,直接一下开了两个程序。为了解决这种现象,可以使用异步调用的方式或者单次计时器,让主界面先显示出来,然后再加载其原创 2022-05-23 10:54:56 · 1568 阅读 · 0 评论 -
qt显示中文乱码,编译提示常量中有换行符,文本后缀“xxx”无效,未找到文本运算符或者文本运算符模板“xxx”
系统:windows10硬件:thinkpad T590qt版本:Qt 5.14.1Qt Creator版本:4.11.1一开始我用MinGW编译器能正常编译,并且显示中文字符串也正常,如下图:然后我改成了msvc编译器,结果编译的时候就挂了,我慢慢的改动字符串内容,发现报的错还不一样,要么提示常量中有换行符,如下图:要么提示文本后缀“xxx”无效,未找到文本运算符或者文本运算符模板“xxx”,如下图:要么编译不报错,但运行显示乱码,如下图:研究后发现这.原创 2022-05-19 15:35:55 · 5555 阅读 · 3 评论 -
Qt开发大型项目时,通过.pri文件将众多文件按功能模块分类显示
1.新建一个项目取名TestPri,如下图:2.添加多个类,如下图:3.可以看到随着添加的类越来越多,我们的qtcreator界面左侧的项目导航栏中的文件越来越多,越来越让人看得眼花,当你的项目工程特别大,文件数量特别多的时候,如果还是这样所有文件都堆在一起的话,想要找某个文件就变得非常困难,极大地影响开发效率。这时候就可以用到pri文件。步骤如下:a.右击TestPri项目,选择Add New—General—EmptyFile—取名function1.prib.打开TestP原创 2022-05-17 16:39:33 · 1807 阅读 · 0 评论 -
opencv Mat::at<>()报错问题记录
//1.它是一个二维矩阵,如果矩阵的维度大于 2 ,执行出错CV_DbgAssert(dims <= 2); //2.如果传过来的矩阵数据为空,执行出错CV_DbgAssert(data); //3.访问不到像素,如图像为500x500,给出的访问命令像素点指向了(600,400)超出了500CV_DbgAssert((unsigned)i0 < (unsigned)size.p[0]); //4.同理 3CV_DbgAssert((unsigned)(i1 * Data.原创 2022-05-12 10:44:33 · 1811 阅读 · 2 评论 -
qt实现程序密钥注册功能,MD5加密+AES加密,并实现一台电脑系统一个密钥
qt实现了一个给自己软件加密的功能。原理是:需要被注册的软件第一次运行的时候,在系统的注册表里面注册一个键值,如下:这个值作为生成密钥的用户识别号,然后生成密钥文件key.db,把这个key.db文件放到软件执行目录下,即可完成软件的注册并正常使用软件。软件第一次打开的界面及密钥生成工具软件界面如下:将密钥生成工具软件生成的key.db放到软件执行目录下之后,软件即可正常使用,如下图:代码使用了MD5加密 外加 AES加密,解密和加密的核心代码如下:QSt.原创 2022-05-07 15:41:49 · 3321 阅读 · 2 评论 -
qtcreator安装及配置
1.在安装qt之前,我们要先安装好visualstudio,并勾选c++相关的所有组件2.安装好之后,安装qt安装完之后,打开qtcreator,这时候,如果你新建程序的时候只需要用mingw编译器的话,那就可以正常开发了,但如果需要msvc编译器的话,还需要设置一下,步骤如下:点击——工具——选项,如下:c和c++编译器分别下拉选择一下,如下:选完之后,我们就可以正常新建程序并运行程序了,但还有问题就是不能debug调试,这个时候,问题处在上图中debugge.原创 2022-04-19 11:48:13 · 17803 阅读 · 2 评论 -
qt显示中文乱码的问题
开发版本:Qt Creator 4.11.1Qt 5.14.1QMessageBox::about(this,"提示","登记成功!");这段代码在运行的时候显示的提示内容变成了乱码,解决方式:在main.cpp加上一下代码:int main(int argc, char *argv[]){ QApplication a(argc, argv); QTextCodec *codec = QTextCodec::codecForName("UTF-8");//.原创 2022-04-02 16:19:59 · 1155 阅读 · 0 评论 -
qt编写的点云显示工具可拖动缩放旋转
本例程通过重写QGLWidget类实现点云的显示,并可对点云进行移动,缩放,旋转的操作。原创 2021-12-21 22:32:49 · 1093 阅读 · 0 评论 -
自定义的QGraphicsItem类无法响应鼠标移动事件
自己重写了一个类,继承自QGraphicsItem类,然后我想重写mouseMoveEvent(QGraphicsSceneMouseEvent *event);函数,来捕捉鼠标移动事件,从而实现实时显示item上光标所在位置的的坐标。结果鼠标移动的时候怎么也进不了这个函数,只有当鼠标点击这个item之后移动,才能进这个函数,坑的不行。解决方法:改用重写virtual void hoverMoveEvent(QGraphicsSceneHoverEvent *eve原创 2021-11-04 15:34:37 · 2913 阅读 · 0 评论 -
qt编写的mask遮罩的半透明涂抹功能
工具功能如下: 1.可控制遮罩绘制时候是起始和终止点是矩形还是圆形 2.可控制遮罩颜色,用户自定义 3.可控制遮罩线条粗细,1~150像素范围内 4.可控制遮罩当前是绘图还是移动图片模式 5.添加橡皮擦功能 6.release模式下,20M以内的图绘制和移动不会卡顿运行效果如下:实现该功能的方法主要是通过QPixmap::setMask()来实现的,需要源码的可以联系我......原创 2021-11-02 09:29:37 · 894 阅读 · 3 评论 -
qt绘制半透明的遮罩(通过qbrush设置半透明图片实现)
qt实现的半透明遮罩效果如下:步骤:1.用ps做一张透明度为50%的png图,如下:2.在工程中吧png图片添加到资源中,如下:3.在绘制矩形的时候,设置brush,如下: //设置笔刷为图片平铺 QImage image(":/maskP"); QBrush brush(image); brush.setStyle(Qt::TexturePattern);//设置平铺模式 painter->..原创 2021-09-01 18:17:48 · 2195 阅读 · 0 评论 -
手把手教你使用Qt自带的opengl创建显示立方体顶点
例程主要时在三维空间中绘制了一个立方体的8个顶点,并且可以绕x,y,z轴进行旋转,运行效果如下:1.先创建一个窗口类程序,如下图:2.添加一个类,取名叫GLWidget,这个类就是用来调用opengl显示三维数据的!3.在工程目录下新建个文件夹,放个纯色的图片进去,方便给三维空间中的顶点着色用,然后新建资源文件,命名为texture,步骤如下:准备工作做完了,接下来详细编写GLWidget类了,代码如下:头文件:#ifndef GLWIDGET_...原创 2021-08-12 17:37:21 · 1031 阅读 · 0 评论 -
qt实现窗口背景透明
方法一: MainWindow w; //方法一:主界面透明,界面里面的控件不透明 w.setWindowFlags(Qt::FramelessWindowHint);//设置无窗口框架边界 w.setAttribute(Qt::WA_TranslucentBackground);//设置背景透明 w.show();编辑界面:运行效果:方法二:w.setWindowOpacity(0.5);//直接设置整个窗口(包含里面的控件)0完全透.原创 2021-08-02 09:33:55 · 7017 阅读 · 0 评论 -
qt实现命令行查询程序相关信息QCommandLineParser,QCommandLineOption的使用
我们知道,程序是可以通过命令行打开的,做法是打开运行cmd,打开命令行窗口,然后输入程序的完整路径就可以打开程序,比如在我的电脑路径F:\QTCode\TestCode\QtUseOpenGlTest\build-hellogl2-Desktop_Qt_5_14_2_MSVC2017_64bit-Debug\debug下有个hellogl2.exe程序,通过命令行打开方式如下:按下win+R——输入cmd——按回车出现如下界面:然后输入F:\QTCode\TestCode\QtUseOpenGl..原创 2021-07-21 15:39:33 · 608 阅读 · 0 评论 -
qt实现将数据转成灰度图及伪彩图
本例子将800*600的double类型的数据先进行归一化成0-255的quint8类型的数据,然后将归一化后的数据生成一个QImage,这个QImage的格式一定要是QImage::Format_Indexed8这是为了方便使用自定义的颜色表,然后将qimage放到qlabel中显示,效果如下:主要代码如下:头文件:#ifndef MAINWINDOW_H#define MAINWINDOW_H#include <QMainWindow>QT_..原创 2021-07-14 16:28:02 · 2947 阅读 · 0 评论 -
qlabel实现图像以鼠标为中心进行缩放和拖动
#ifndef MYLABEL_H#define MYLABEL_H#include <QObject>#include <QLabel>#include <QMouseEvent>#include <QWheelEvent>#include <QPainter>#include <QDebug>class MyLabel:public QLabel{public: MyLabel(QWidget *p.原创 2021-06-26 20:27:56 · 4681 阅读 · 7 评论 -
qt实现windows系统下录屏功能
我的程序是借鉴了网上流传的avilib源码实现的屏幕录制。功能:1.最高支持1080P 24帧率高清录制2.支持特定屏幕区域录制3.支持录屏质量修改,质量越高,录制单位时间生成的avi文件越大4.支持帧率选择5.通过的注意点:1.debug下录制...原创 2021-05-20 15:18:03 · 4099 阅读 · 3 评论 -
qt自定义控件不执行paintEvent(QPaintEvent *)
记录一个问题:我重写了一个类myslider继承自QSlider,然后重写了paintEvent(QPaintEvent *)方法。然后从工具栏拖一个QSlider工具到主界面上,名字为verticalSlider,然后将这个QSlider提升为自己的myslider然后运行的时候发现不会执行myslider::paintEvent(QPaintEvent *)函数。也就是界面上不显示这个QSlider。解决方案:主界面构造函数中添加如下代码:ui->verticalSlider-&g原创 2021-05-19 14:05:52 · 2615 阅读 · 1 评论 -
qt中提升控件的操作
我的代码里面自己写了一个类myview,继承自QGraphicsView,然后就把拖到界面上的QGraphicsView控件通过提升控件的方式替换成自己的myview类。先在工具栏拖一个QGraphicsView到主界面上,如下图:右击界面上的Graphics view——选择“提升为”,如下图:在提升的类名称:输入自己写的类名(注意大小写要一模一样!),如下图:然后勾选上面的全局包含勾选框——点击提升,如下图:到现在为止就算是提升好了,我们在mainwindow.ui文件里面就可以看到你原创 2021-05-19 09:59:05 · 2700 阅读 · 0 评论 -
qt写的windows下获取鼠标所在位置及颜色
主要用到的是windows的如下几个函数:HDC dc = GetDC(0);//0表示获取桌面的DC上下文POINT Mouse;GetCursorPos(&Mouse);//获取当前鼠标位置int BGR = GetPixel(dc,Mouse.x,Mouse.y);//获取鼠标位置的BGR颜色头文件需要包含#include <Windows.h>#include <winddi.h>另外需要手动加载windows的lib模块#pragma co.原创 2021-05-13 16:06:32 · 1063 阅读 · 0 评论 -
qt实现在电脑端群发微信
需要用到的知识点:1.主要还是靠windows自带的api实现2.用到了系统回调函数遍历窗口3.用到了剪贴板4.用到了窗口前后台链接、激活及恢复核心代码如下:#include "mainwindow.h"#include "ui_mainwindow.h"#include <QDebug>#include <Windows.h>#pragma comment (lib, "User32.lib")char m_Name[MAXBYTE];char m_Ti.原创 2021-05-11 15:58:18 · 909 阅读 · 0 评论 -
windows下qt获取所有桌面窗口所属类名和标题
新建一个Qt Widgets Applicationmainwindow.cpp如下:#include "mainwindow.h"#include "ui_mainwindow.h"#include <QDebug>#include <Windows.h>#pragma comment (lib, "User32.lib")char m_Name[MAXBYTE];char m_Title[MAXBYTE];WORD m_nNum;BOOL CALLBACK原创 2021-05-11 13:58:15 · 3982 阅读 · 0 评论 -
QT实现向外部窗口发送消息
我的电脑上用微信打开了一个对话窗口,如下图:我的目的是通过qt开发的程序向这个窗口发送消息头文件处需要有下面代码:#include <Windows.h>#pragma execution_character_set("utf-8")#pragma comment (lib, "User32.lib")功能代码如下:HWND hwnd = FindWindow(NULL,L"文件传输助手");//找到桌面上窗口名叫"文件传输助手"的窗口QString str = "test原创 2021-05-10 16:35:49 · 1698 阅读 · 2 评论 -
重写QGraphicView类实现在view控件上显示十字标线(解决QGraphicView重写qpaintevent无效的问题)
在我的代码里界面上放了一个qgraphicview,然后设置qgraphicview的场景QGraphicsScene,然后在QGraphicsScene里面放item(也就是上图显示的黑色线条)我的需求是在view控件区域显示十字标辅助线操作步骤如下:1.重写一个类cusView继承自QGraphicsView2.重写paintEvent函数,这个函数里写绘制十字线的代码。3.重写mousemove函数,在里面调用this->scene()->update();目的是触发paint.原创 2021-05-01 12:23:15 · 1764 阅读 · 0 评论