自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(29)
  • 收藏
  • 关注

原创 C++语法知识点

子类继承父类,并。

2023-08-08 15:09:42 133

原创 C++11常用知识点总结

using = 可以在类型重定义时其中带有类型参数,而typedef不行typedef QMap<T,int> MAPI //非法using AAA = QMap<T,int> 没问题。

2023-08-04 16:09:45 143

原创 C++ 重载、重写(覆盖)、隐藏

在同一作用域中,函数名相同,参数列表不同(参数的类型、个数、顺序不同)的一组函数。重载函数的返回值可以相同也可以不同。重载的底层实现原理是C++中有换名规则,所有的函数在经过编译后,会被记录成一个带函数名_参数类型的函数。C语言中没有换名规则一说,被实际记录的只有单纯的函数名,所以C语言无法支持函数重载。

2023-07-21 15:02:45 180

原创 mac Qt程序打包

在此记录一下Qt在mac下生成app后,如何为app配置相关的依赖项,使得生成的app直接拿到别人的电脑上可以直接运行。总的来说需要三步第一:使用macdeployqt工具将需要的Qt依赖拷贝到app中,关于macdeployqt工具将不再多说,跟Windows的windeployqt一样,在安装QtCreator时自动添加到安装bin目录中第二:将我们自己引入的库文件、资源文件、配置文件等添加到app中(如果这几项没有使用,略过即可)第三:使用install_name_tool -change命令

2022-07-12 11:33:09 2126 1

原创 windows qt程序打包过程

本文章用来记录一下windows下生成了qt的exe可执行程序后,如何打包该exe的所有依赖,生成一个绿色无安装版的文件包。在说打包步骤之前先说一下windeployqt.exe这个程序,这是一个非常重要的工具,是用来拷贝我们生成的qt exe所依赖的Qt环境和库的小工具,此小工具在我们安装QtCreator时会自动安装,在Qt安装的bin路径下,我把QtCreator安装到了C盘,该exe的路径为:C:\Qt\Qt5.12.3\5.12.3\msvc2017\bin,根据个人需要查看一下你自己的QtCr

2022-07-11 11:38:13 450

原创 QAudioDeviceInfo::defaultInputDevice(),defaultOutputDevice()无法获取默认设备名称问题

我想通过Qt的接口获取默认音频输入输出设备的名称,首先想到的就是QAudioDeviceInfo::defaultInputDevice(),QAudioDeviceInfo::defaultOutputDevice()这两个函数,返回值;类型QAudioDeviceInfo,QAudioDeviceInfo::defaultInputDevice().deviceName()和QAudioDeviceInfo::defaultOutputDevice().deviceName()轻松搞定,得到输入设备和输

2022-03-23 18:04:01 1353

原创 qml遇到的一些坑(文字背景透明?mac中Window窗口弹不出M1芯片?)

最近用qml实现了一个日历日程的功能,用的是qml,现在总结一下遇到的比较坑的地方我这边使用qml的方式是嵌在Qt中,承装qml的窗口用的是QQuickWidget,在需求中有弹出窗口的需求,一开始用的是qml的弹窗方式,用Window作为基类,来处理弹窗,但是遇到了一个问题,在Mac本M1芯片的机器上Window居然弹不出来,查了一些资料发现,我们用的Qt版本(5.12.3)在M1芯片上Window弹窗不支持,额。。。好伤心,windows都搞完了,像qml这种脚本语言,没觉得会在这里迭个跟头,下面就是

2021-12-30 18:20:32 716

原创 QStackedLayout一些惊艳到你的属性

QStackedLayout是Qt布局器中的一种,与其他几个不同的是,放在其中的UI,会被“摞在一起”,可以理解为它是一个相册,放进去的每一个UI元素会被叠在一起,一次我们只能看到最上面一张照片的信息。主要的应用场景:如设置页,设置完一页点击下一页,在同一块区域显示不同的设置元素,这也是其应用比较广泛的场景。使用的例子如下:我向QStackedLayout中加入两个界面 QStackedLayout *stack = new QStackedLayout(); Wgt1 *wgt1 =

2021-09-18 19:33:08 636 1

原创 Qt将应用程序以顶层窗口显示

最近接到一个小需求,以微信为例,我们登录微信以后,会在电脑的底部托盘显示微信的图标,在图标上鼠标右键,会弹出一系列的按钮菜单,菜单截图如下:今天想说的是点击“设置”这个选项,一系列的处理。首先看一下点击“设置”按钮后的结果,截图如下:无论是顶层显示,被其他应用窗口遮挡或者当前是最小化状态,都会将应用程序置顶显示,并弹出设置界面。本贴要解决的两个问题:如果被其他应用程序遮挡如何置顶显示一句话搞定,应用程序主窗口调用activateWindow()函数如果应用程序当前处于隐藏状态如何显示一句

2021-09-08 17:26:23 2660

原创 QLineEdit,QTextEdit消息输入框键盘回车发送数据

有 如下一个界面,为聊天界面的一部分,上面的文本输入框是填写发送内容的部分,输入完成后点击“发送”按钮,将数据发送出去,原本的实现,在输入框中点击键盘回车键,文本会换行,现在希望在输入框中点击回车键,可以自动触发发送按钮的发送功能。处理的方式很简单,步骤如下:1.在输入框和发送按钮所在的主窗体中,设置输入框的事件过滤器为当前窗口2.主窗口中重写eventFilter函数3.在eventFilter函数中截获输入框键盘回车键按下事件4.在截获的事件中调用数据发送按钮绑定的槽函数。伪代码如下:u

2021-08-21 13:47:01 1871

原创 Qt截取长图(带滚动条被遮挡部分需要展开截取全图)QScrollArea、QPixmap

没想到截取长图的实现如此简单,标题写的有点模糊,下面简单介绍一下需求。软件中有一块固定的区域显示图片,但是原来的图片都相对较小,图片展示区完全可以容纳,每隔一段时间需要将显示的区域截图处理。新的需求中需要在这固定大小的区域中显示长图,显示长图则就会有滚动条显示,说起滚动条就想到了在其底部添加QSrollArea滚动区域,当内容超出显示时范围时,显示滚动条。但是按照原本的截图处理,只能截图滚动条滚动显示的部分,未显示的部分则不会被截取。先看一下截屏的代码:QPixmap pix(wgt->si

2021-07-21 15:33:22 1456 1

原创 Qt 主界面中的子窗口也可以实现鼠标拖动边缘改变窗口大小

简单说一下实现的功能,如下图,在主窗口中有一个绿色的子窗口。Qt的自带属性,可以实现鼠标移动到蓝色主窗口的边缘时改变鼠标形态,拖动改变主窗口的大小。现在任务是将中间的绿色子窗口也处理成带这种属性的窗口。...

2021-05-08 11:09:40 2841 11

原创 Qt实现控制在父窗体内可以拖动,且拖动范围不能超出父窗体

需求是这样的:在主窗体上会根据业务弹出一个临时的小界面,类似于提示的标签。希望这个标签可以鼠标拖拽移动位置,且标签的拖拽范围只能在主界面范围内,不可以拖出去。我的处理方式是在子标签上进行,下面来聊一下实现的思路:处理拖拽可移动,鼠标的三个事件肯定不能少,mousePressEvent(鼠标按下),mouseMoveEvent(鼠标移动)和mouseReleaseEvent(鼠标释放)在mousePressEvent事件中记录鼠标按下状态(在mouseMoveEvent事件中使用),记录鼠标点击时的起

2021-05-06 14:39:48 2273 3

原创 cmd命令为文件创建桌面快捷方式-双击html文件打开指定网址-nsis制作安装包,点击完成时执行bat脚本

最近做了个小需求,用到的知识点挺多,都是临时现学现用,在此做个笔记,希望日后可以参考使用。pc端的电脑环境比较复杂,各种系统,各种版本,导致制作的安装程序,可能需要在不同的机型上进行一些插件或补丁的升级自行或下载,配置后才可以正确使用,如果不进行以上操作程序无法启动,所以想在软件安装点击完成的同时,创建一个安装包中html的桌面快捷方式,如果软件无法打开,则可以通过该链接说明进行补丁等的机型适配工作,之所以做成链接网址的形式,为了方便后续有变动比较方便。下面就是要处理的几个步骤:创建html文件:双

2021-04-29 17:44:39 1334

原创 QThread之moveToThread实现方式

Qt提供了两种多线程的使用方法,下面针对这两种方法分别进行一下说明。方法一 继承自QThread该方法比较简单,只需定义自己的类,让该类继承自QThread,并重写QThread类的run函数,注意:所有耗时的操作请放在run函数中去执行,此多线程的方法有且只有run中的程序是在新的子线程中运行的,其他代码仍在创建该线程所在的线程中执行。调用start函数开始线程的执行,stop结束线程的执行...

2021-04-14 18:54:36 1182 3

原创 今天又碰到了QAudioOutput的天花板

需求背景介绍:项目中会有多个pcm音频数据段,每一段是不同人的发言短音频,可以播放其中任何人的音频,当播放其中一个人的音频时,可以通过切换按钮随时切换播放另外一个人的音频,数据量不算太大,十五秒上限的数据量,但是每次播放音频数据时是将某个人一整段的音频一次性给QAudioOutput去播放。当播放某个人的音频结束时返回消息。了解到需求之后就开始写代码了,写代码之前首先了解一下QAudioOutput的四种状态:QAudio::ActiveState:正在播放音频数据时的状态,QAudioOutput调

2021-04-14 17:53:40 1309 1

原创 Wireshark提取h.264、opus码流

链接:https://pan.baidu.com/s/1XChViKczq-QzPey2ukb_BQ提取码:0c2q复制这段内容后打开百度网盘手机App,操作更方便哦

2021-03-23 21:45:21 1335

原创 git操作出现 error: The following untracked working tree files would be overwritten by ...

昨天遇到一个git的提示:error:The following untracked working tree files would be overwritten by merge,操作的目的是想把主分支的程序合并到子分支中,方便过几天上线的时候子分支合到主分支有什么冲突,可以提前解决一下。操作顺序如下:在子分支中merge主分支的程序。此时有几个冲突文件,其中几个是配置文件直接拿主分支的替换就可以,还有几个是代码冲突,手动合并就行,此时想线切到主分支,把那几个配置文件拷贝出来,所以就有一下几步操作

2021-03-04 11:12:14 70087 16

原创 网络传输中的MTU

什么是MTUMTU 即 数据链路层的最大传输单元,单位是字节查看MTU的步骤1.打开dos窗口2.输入命令:netsh interface ip show interfac查询MTU值是否合适1.打开dos窗口2.查询默认网关,输入命令:ipconfig3.属入命令:ping -f -l 需要查询的MTU值 默认网关例子:ping -f -l 1452 192.168.1.1若MTU值可行则会有如下的提示:正在 Ping 192.168.1.1 具有 300 字节的数据:来自 1

2021-03-01 19:58:34 875

原创 Qt制作自定义音量条

Qt制作自定义音量条一直希望自己做一个漂亮的音量进度条,今天做好了,拿出来记录一下。做出来的效果如下:实现的本质就是两张图片,设置图片的显示范围。灰色的作为底图,根据进度条应该显示的长度,缩放上层高亮图片的显示范围。废话不多说直接上代码:#ifndef PROGRESSBAR_H#define PROGRESSBAR_H#include <QObject>#include <QWidget>#include <QPixmap>class Progr

2020-10-30 20:38:33 2003

原创 QT自定义Widget实现鼠标拖动窗口移动位置及鼠标拖拽窗口边缘窗口大小改变

QT自定义Widget实现鼠标拖动窗口移动位置及鼠标拖拽窗口边缘窗口大小改变通过setWindowFlags(Qt::FramelessWindowHint);可以隐藏掉Qt自带的窗口标题,这句话写的简单,可是窗口引起的改变可不少:最直观的,标题栏没了间接的,没了标题栏,也没有办法拖拽标题栏移动窗口位置了隐含的,鼠标移动到窗口边缘时,鼠标形态不再改变,无法实现鼠标拖拽窗口边缘改变窗口大小So,想使用自定义的窗体也是需要付出代价的。如果我既想自定义窗体,也想要让自定义的窗体,兼具鼠标拖动窗口移动

2020-10-21 20:15:06 5429 13

原创 QT资源加载之rcc文件

Qt资源加载之rcc文件qrc文生成*.rcc如何使用rcc文件最近get了一个新技能,那就是rcc文件的使用。感觉瞬间释然了几个以前纠结的问题问题来源:使用Qt做UI的宝宝们肯定会遇到使用图片作为控件背景的问题,以前的时候只会两种处理方式:第一种:使用qrc文件,将需要的图片资源加载到程序中。这种方式最简单,但有个致命缺陷,因为图片等资源被一起编译到了可执行程序中,所以资源的多少直接影响可执行程序的体积,且在程序启动时就要把所有的资源都加载进去,所以也会增加软件的启动时间,资源越多时间越长。第二

2020-10-12 20:24:12 6586

原创 C++ 单例的饿汉式和懒汉式及懒汉式遇到多线程的终极处理方式

什么是单例模式在整个系统的运行过程中保证某个类的实例有且只有一个的实现方式叫做单例模式单例模式的实现思路如何来保证类的实例在整个系统中只有一个呢?让用户自己去创建唯一实例?这怎么可能,只要用户能创建第一个实例就能创建第二个实例。那怎么保证唯一实例呢?答案就是在单例类上做手脚,第一:不能让用户随便创建类的实例;第二:既然用户不能创建实例,那就得我们自己创建实例;第三:提供唯一的接口让用户获取我们创建的唯一实例私有化构造函数构造函数是用来初始化实例的函数,将构造函数设置为私有,这样就防止了用户自己创建

2020-09-16 16:29:01 167

原创 Qt制作消息弹幕控件

Qt制作消息弹幕控件需求效果图如下:需求分析:底部是信息输入框,可以书写自己要发送的信息,点击发送按钮进行发送,每条弹幕消息间隔相等,消息间隔透明,消息背景带透明度,新消息的插入顺序是添加到字幕的底部,旧消息上移,根据数据的信息量,自动调节每条数据所占行高;消息分两部分,前半部分是用户名,第二部分是消息体(具体的样式可以根据自己的业务需求进行调整),主要是项目中的这个弹幕消息是叠加到视频窗口上的为了不影响视频的观看才设置的这种透明效果在做这个控件的时候遇到了以下几个问题,下面一一列举,并讲述是怎么解

2020-08-20 15:45:58 666 2

原创 QtSingleApplication实现一个机器只有一个软件实例,且在程序已经运行时,双击可执行程序使启动的软件界面置顶弹出显示

项目经理对软件提出了新的需求,要求一个机器只能同时存在一个软件实例,即同一时刻,一台电脑只能启动一个软件,在已经启动的情况下,若用户再次启动软件,则不能启动,原本是采用一种方法解决来着,方法见上一篇文章:https://blog.csdn.net/weixin_40425059/article/details/103426990该方法确实能在软件启动时检测到是否已经有软件实例在运行,我的做法是,...

2019-12-13 15:56:37 603 2

原创 Windows下实时检测计算机联网状态

我的程序采用Windows的UDP发送数据API发送大量的数据信息,做了一个发送流量的统计,统计的依据就是sendto函数的返回值(即:本次发送的数据长度),如果该值大于0,则将发送的数据长度做一个一秒内的累加,一秒做一次发送流量统计。但是问题出现了,当将本机的网络全部断开后,程序统计到的发送流量仍是大于0 的数,跟没断开网络时的统计是一样的,原因就在于sendto函数在网络断开时,返回值仍然是大...

2019-12-10 10:11:31 1350

原创 Windows检测一个机器同时只能启动一个指定软件

前两天遇到一个问题,写的软件因为需要占用很多固定端口,业务上也不支持端口复用,所以,一个机器上,同时最多只能有一个软件处于启动状态,所以就需要在软件启动的时候检测本机是否已经启动了该软件,废话不多说,直接上代码:/*作用:检测程序一个机器软件是否已经运行返回值:false:没有在运行,true:软件已经在运行*/bool checkAppAlive(){ HANDLE hEve...

2019-12-06 17:54:38 238

原创 Qt之自定义用户名输入框 QLineEdit+QLabel+QComboBox 带输入自动提示补全和历史登录用户记忆

前几天美工给设计出了一个用户登录界面,其中用户名输入框样式如下图:左侧的“用户名”三个字为固定文字,中间可输入用户名,点击右侧的倒三角,可以显示下拉框,下拉框中显示的是历史登录成功的用户名,且在输入用户名时,若下拉框中有完整的用户名时进行补全提示。本人采用的是最外层为QLineEdit控件,在QLineEdit控件中填充水平布局器,布局器中依次放入QLabel用于填写“用户名”固定数据,QC...

2019-09-20 17:44:29 3610

原创 Qt之QSS的使用及常用控件的样式设置

原地址:https://mp.csdn.net/mdeditor/101059491纯干货哦!什么是QSSQt Style Sheet简称QSS,Qt的样式表,模仿CSS,为Qt界面设置炫酷的展示效果。如何使用QSS推荐使用第二种方式方式一:在界面中设置不推荐使用在编辑器中找到要设置样式的.ui文件,双击该文件,在界面编辑器中显示该文件在界面编辑器的右侧,右键单击,在弹出的右键...

2019-09-20 16:54:34 7993 2

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除