自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(79)
  • 资源 (9)
  • 问答 (1)
  • 收藏
  • 关注

原创 线程安全的单例模式

前言单例模式 ( Singleton Pater ) 是最简单的、也是我们很常用的一种设计模式。保证⼀个类仅有⼀个实例,并提供⼀个该实例的全局访问点。那么在多线程的环境,怎么才能更好的确保线程安全呢?实现1. 饿汉模式饿汉模式使用一个静态成员变量,程序启动即完成构造,不要考虑线程安全的问题,c++ 11 中 static 的特性:如果当变量在初始化的时候,并发同时进入声明语句,并发线程将会阻塞等待初始化结束。class Singleton {public: static Singleton

2021-01-25 22:32:35 686

原创 海量数据去重之布隆过滤器

背景在使⽤word⽂档时,word如何判断某个单词是否拼写正确?⽹络爬⾍程序,怎么让它不去爬相同的url⻚⾯?垃圾邮件(短信)过滤算法如何设计?公安办案时,如何判断某嫌疑⼈是否在⽹逃名单中?缓存穿透问题如何解决?先来看一个场景,假如我们的数据库使用的是 mysql,缓存使用 redis。#mermaid-svg-x7Y9B3Bf5hF9jBuu .label{font-family:'trebuchet ms', verdana, arial;font-family:var(--merma

2021-01-16 18:52:33 872

原创 Qt实现窗口靠边半屏,靠顶全屏的效果

前言  前两天登录github看到一个网友的留言,这两天比较闲就研究了下。实现效果实现思路  实现一个继承自QWidget的类,我们就叫MuWinWindow,然后设置无边框setWindowFlags(Qt::FramelessWindowHint);然后实现bool MuWinWindow::nativeEvent(const QByteArray &eventType, void *message, long *result)此时我们拖动窗体的任何部分都能实现上面的效果。我们想要的

2020-06-27 19:29:54 5256 21

原创 Qt元对象系统(Meta-Object)(四)、Moc源代码分析

目录前言打开源代码源码追踪解析前言  前面讲了那么多,Qt的元对象系统是多么多么厉害,多么多么好,那么Moc是具体是怎么工作的,所谓源码面前,了无秘密,下面让我们一探究竟。打开源代码前提时安装qt的时候必须选择 源码。比如我的路径是/opt/Qt5.9.5/5.9.5/Src/qtbase/src/tools/moc/moc.pro当然我是以管理员的权限打开QtCreator的源...

2019-06-24 15:01:54 2373

翻译 Qt元对象系统(Meta-Object)(三)、为什么Qt将Moc用于信号和插槽

目录为什么Qt将Moc用于信号和插槽?语法的重要性代码生成器很好用GUI是动态的调用性能并非一切没有限制为什么Qt将Moc用于信号和插槽?  模板是C ++中的内置机制,允许编译器动态生成代码,具体取决于传递的参数类型。因此,模板对于创建框架的人来说非常有趣,我们在Qt的许多地方都使用高级模板。但是,存在一些局限性:你可以使用模板轻松表达某些内容,但是有些内容是无法用模板表达的。一个通用的ve...

2019-06-20 13:36:38 848

翻译 Qt Model/View教程

目录  每个UI开发人员都应该了解Mode/View编程,本教程将对Model/View进行全面的介绍。  表(Table)、列表(List)和树(Tree)控件是gui中经常使用的控件。这些控件访问数据的方式有两种。比较传统的方法是控件包含一个用于存储数据的内部容器。这种方法非常直观,但是,在许多重要的应用程序中,它会导致数据同步问题。第二种方法是Model/View编程,其中控件不维护内部...

2019-06-10 15:06:57 6552 2

原创 Qt 实现PC端网易云音乐界面

闲暇时间持续开发中,欢迎大家提供想法和交流。。。github: https://github.com/FlyWM/MumuMusic

2018-12-25 14:02:49 8599 11

原创 Qt去掉标题栏之后添加边框阴影的解决方案

前言  我们经常需要自定义标题栏,那么去掉标题栏是非常有必要。但是去掉标题栏之后边框阴影也会消失,感觉光秃秃的,不太舒服。接下来我们将讨论添加边框阴影的几种解决方案。解决方案如果是Windows平台,那么可以调用Windows相关API。使用Qt的QGraphicsDropShadowEffect类来实现。使用Qt的qDrawBorderPixmap函数来实现。自己构造出边框阴影QI...

2018-12-10 20:47:00 6629 7

原创 Qt适配Windows缩放

问题:  我们都知道windows系统有缩放功能,能够按比例缩小或者放大控件和文字。但是Qt默认的对其支持的效果并不是特别好。比如:125%:175%:  从上面两张图可以看出字体相应的放大了,但是控件大小并没有放大,导致字体显示不全。解决方案:一、固定大小不变。  无论缩放比例是多少,控件大小和字体大小都不变。字体我们使用 setPixelSize(int pixelSiz...

2018-11-11 22:38:00 17928 8

原创 Qt自定义按钮弹窗控件

  一直以为做一个按钮弹窗控件很简单,可做起来发现并不是那么顺利,折腾了挺长时间的,先看下效果:前言  尝试过两种方案,方案一:使用QToolButton控件,我们可以自定义一个widget,然后setMenu设置为该widget;方案二:点击一个QPushButton然后show一个自定义widget。使用方案一的话各种鼠标事件不用我们管了,但是如果我们想要做的漂亮一些就会有很多局限性,不...

2018-10-21 15:51:55 5400 3

原创 Qt自定义无边框Widget、Dialog、MessageBox

文章主要参考 一去丶二三里 大大的博客https://blog.csdn.net/liang19890820/article/details/50557240,进行了一些改造和升级。  如果需要做出更漂亮的窗体界面,那么实现无边框的widget是非常有必要的。本文就实现了无边框的widget、Dialog、MessageBox等一些常用的控件,进行了一些美化,可以拖动、缩放、双击标题栏最大化还...

2018-08-07 21:39:15 9125 4

原创 Ubuntu下安装微信(非网页版)、TIM、QQ

  之前一直在用 github 上的electronic-wechat,但是调用的都是网页微信的api,很多功能受限,今天发现了一个更加强大的方法,和Windows版本的微信基本一致,好东西是拿来分享的,哈哈哈,当然还得感谢这位大神。  github: https://github.com/wszqkzqk/deepin-wine-ubuntu下载完成之后直接运行 install.sh 脚本安...

2019-07-02 22:49:15 4493 6

翻译 Qt元对象系统(Meta-Object)(二)、moc的使用

目录使用元对象编译器(MOC)使用方法编写调用moc的规则命令行选项诊断限制多重继承需要QObject在第一个信号和槽的参数不能为函数指针该文章翻译自官方文档。使用元对象编译器(MOC)  元对象编译器MOC是处理Qt的C++扩展的程序。MOC工具读取C++头文件。如果它找到包含Q_OBJECT宏的一个或多个类声明,它将生成包含这些类的元对象代码的C++源文件。除此之外,信号和槽机制、运行时...

2019-06-20 11:32:25 1023

转载 Qt元对象系统(Meta-Object)(一)、介绍

原文:https://blog.csdn.net/liang19890820/article/details/52020693 简述Qt的元对象系统(Meta-Object System)提供了信号与槽机制,可用于对象间通信、运行时类别信息和动态属性系统。元对象系统基于三个方面:QObject类:为objects提供了一个可以利用元对象系...

2019-06-20 10:22:10 423

转载 Qt插件之深入理解插件系统

原文: https://blog.csdn.net/liang19890820/article/details/78134253简述 要开发一个成功的系统,插件是必经之路。对于小朋友来说,积木是木头塑料,用这些小积木可以拼成房子、动物。对于建筑工人来说,积木是零砖碎瓦,用这些小积木可以构建高楼大厦。对于程序员来说,积木可以看做是插件(更高级一点),用这些小积木可以搭建大系统。...

2019-06-18 14:28:21 800

原创 Qt5读写修改Json数据

前言  Qt中对JSON支持提供了一个易于使用的c++ API来解析、修改和保存JSON数据。它还支持以二进制格式保存这些数据,这种格式是直接“mmap”的,并且访问起来非常快。读Json数据Json文件,1.json{ "name": "flywm", "age": "18", "home": "tianjin" }程序:#include <QCoreA...

2019-05-23 22:35:41 8981 7

原创 正则表达式30分钟入门教程

正则表达式的规则很繁琐,每次使用基本都要去查,之前看到的写得很好的一篇关于正则表达式的文章,方便使用的时候查看。原文: http://deerchao.net/tutorials/regex/regex.htm...

2019-01-10 14:26:00 212

转载 Windows平台编译使用google breakpad

简介  breakpad是一组用于实现崩溃报告系统的客户端和服务器组件,然而我在google官方及网上仅能找到客户端的使用方法,google官方似乎并没有提供服务端的东西,仅提供了用于上传崩溃文件的方法(详情见源码中的src\tools\windows\symupload文件夹)。   breakpad源码见 https://chromium.googlesource.com/breakpad...

2018-12-28 08:45:33 3661

原创 Qt-生成dump文件

简介  之前转载过一片文章Qt–让你的客户端崩溃之前生成dump文件,文章中介绍了如何生成crash日志,不够形象直观,如果能够生成用vs打开的dump文件那就更好了,下面开始介绍。Qt + MSVC编译器&amp;amp;emsp&amp;amp;emsp;这种情况其实比较简单,我们直接在qmale构建配置的地方的额外的参数项上加上&quot;CONFIG+=force_debug_info&quot; &quot;CONFIG+=s...

2018-12-23 19:16:33 11908 6

转载 Qt--让你的客户端崩溃之前生成dump文件

原文:https://blog.csdn.net/wangshubo1989/article/details/52586516之前写过在windows开发中,让你的客户端崩溃之前生成dump文件,今天稍微改动改动用在qt上吧。windows客户端开发–让你的客户端崩溃之前生成dump文件定义一个类叫CCrashStack: crashstack.h#ifndef CCRASHSTACK_...

2018-12-19 19:34:26 3576

转载 windows客户端开发--让你的客户端崩溃之前生成dump文件

debug时候我们可以很快速、精确的定位问题所在。但是对于release版本,我们往往无能为力。尤其面对一群难缠的客户,情况就会更加糟糕。而且对于release版本来说,crash的时候日志系统往往起不到任何作用。而且,我们也不可能捕获所有的异常,更何况,客户端崩溃的原因都是我们捕获不了的异常。这就需要dump文件了。dump文件是C++程序发生异常时,保存当时程序运行状态的文件,是调试...

2018-12-19 19:27:19 586

原创 高效地使用QString

QStringLiteral(str) 宏  在变异期间,QStringLiteral宏从字符串常量str中获取QString所需的数据,生成的字符串数据是保存在只读数据段的,创建QString是非常高效的。假如我们不使用QStringLiteral宏,例如:// hasAttribute takes a QString argument if (node.hasAttribute(&quot;ht...

2018-12-06 13:07:50 2415

转载 Qt 翻译原生 widgets(QTextEdit 右键菜单等)

原文:https://blog.csdn.net/liang19890820/article/details/53738384简述在国际化的处理中,如果使用 Qt widgets 自带的原生功能,其中很多文本并不会被自行翻译,例如:QTextEdit 右键菜单(复制、粘贴)。最好的方式是 Qt 能提供相关模块的 ts 翻译源,开发者根据所要翻译的内容自行翻译。但是,查找 Qt 安装目录,并没...

2018-11-30 20:20:47 711

转载 Qt 之国际化(系统文本 - QMessageBox 按钮、QLineEdit 右键菜单等)

原文: https://blog.csdn.net/liang19890820/article/details/50320153简介使用Qt的时候,经常会遇到英文问题,例如:QMessageBox中的按钮、QLineEdit、QSpinBox、QScrollBar中的右键菜单等。通常情况下,我们软件都不会是纯英文的,那么如何处理这些问题呢?其实这也属于国际化的一部分。 下面,以中英文切...

2018-11-30 20:18:58 355 1

转载 Qt 之国际化

原文: https://blog.csdn.net/liang19890820/article/details/50276673简介Qt国际化属于Qt高级中的一部分,本想着放到后面来说,上节刚好介绍了Qt Linguist,趁热打铁就一起了解下。对于绝大多数的应用程序,在刚启动时,需要加载默认的语言(或最后一次设置的语言)。在使用的过程中,我们也不需要重启应用程序而实现语言的动态切换。这样的...

2018-11-30 19:55:20 241

转载 Qt Linguist 介绍

原文: https://blog.csdn.net/liang19890820/article/details/50274409简介Qt提供了一款优秀的支持Qt C++和Qt Quick应用程序的翻译工具。发布者、翻译者和开发者可以使用这款工具来完成他们的任务。发布者:承担了全面发布应用程序的责任。通常,他们协调开发者和翻译者的工作,可以使用lupdate工具同步源代码,进行翻译,使用lre...

2018-11-30 19:51:46 405

原创 单链表

链表  数组是程序设计语言所提供的一种非常特殊有用的数据结构,但是,数组至少有两个局限:(1)编译器就要知道大小;(2)数组中的数据在计算机内存中是以相同距离间隔开的,这意味着要在数组中插入一个数据,需要移动该数组中的其它数据。链表就不存在这些问题,链表是节点的集合,节点中存储着数据并连接到到其它的节点。通过这种方式,节点可以在内存中的任何位置,每个节点都存储着链表中其它节点的地址,因此数据很容...

2018-11-29 22:44:08 183

转载 MSVC中C++ UTF8中文编码处理探究

作者esfog, 原文地址 http://www.cnblogs.com/Esfog/p/MSVC_UTF8_CHARSET_HANDLE.html  字符编码的问题,上大学那会儿就遇到过,一直都是云里雾里,没太搞清楚。最近又遇到了问题,想在C++的控制台上输出Utf-8编码的汉字字节流。尝试了好多次都是乱码,后来花了些时间查查资料,又和同事交流了一下,算是把C++上对于UTF8编码的处理大概摸...

2018-11-29 08:40:20 1776

原创 数据结构与算法之数组顺序表

  最近打算把数据结构与算法重新复习一遍,边复习边写博客方便以后查看,先来最简单的数组顺序表。顺序表  顺序表是在计算机内存中以数组的形式保存的线性表,线性表的顺序存储是指用一组地址连续的存储单元依次存储线性表中的各个元素、使得线性表中在逻辑结构上相邻的数据元素存储在相邻的物理存储单元中,即通过数据元素物理存储的相邻关系来反映数据元素之间逻辑上的相邻关系,采用顺序存储结构的线性表通常称为顺序表...

2018-11-28 09:59:30 322

转载 C++ 工厂方法模式

原文: https://blog.csdn.net/liang19890820/article/details/70652858简述工厂方法模式(Factory Method Pattern)是一种常用的对象创建型设计模式,此模式的核心思想是封装类中不变的部分,提取其中个性化善变的部分为独立类,通过依赖注入以达到解耦、复用以及方便后期维护拓展的目的。模式结构UML 结构图:Facto...

2018-11-26 13:45:33 2041 2

原创 Qt源码之d指针分析(QObject,QObjectPrivate)

前言  阅读过Qt源码的同学一定对d指针不陌生,前段时间其实写过一次关于Qt d指针的文章,但是感觉不够透彻就删除了,这次打算彻底地详细地再分析一次。Pimpl机制  对Pimpl机制不熟悉的先熟悉下Pimpl机制Pimpl机制。Qt的d指针其实主要还是采用了Pimpl机制。关于Pimpl机制的优点:降低耦合信息隐藏降低编译依赖,提高编译速度接口与实现分离  其实Pimpl机制...

2018-11-25 21:25:17 4159 5

转载 Pimpl设计模式

原文: https://blog.csdn.net/lihao21/article/details/47610309 Pimpl(pointer to implementation, 指向实现的指针)是一种常用的,用来对“类的接口与实现”进行解耦的方法。这个技巧可以...

2018-11-24 17:51:56 335

原创 单例模式扩展之多例缓存的设计

缓存我们主要采用std::map和懒汉式单例模式进行设计。本文中暂不考虑线程安全的问题。源码:#include &amp;amp;amp;amp;amp;amp;amp;lt;iostream&amp;amp;amp;amp;amp;amp;amp;gt;#include &amp;amp;amp;amp;amp;amp;amp;lt;map&amp;amp;amp;amp;amp;amp;amp;gt;#include &amp;amp;amp;amp;am

2018-11-24 17:21:08 390

转载 C++单例模式

原文:https://blog.csdn.net/u011012932/article/details/61615495简述单例模式(Singleton Pattern)是设计模式中最简单的形式之一,其目的是使得类的一个对象成为系统中的唯一实例。这种模式涉及到一个单一的类,该类负责创建自己的对象,同时确保只有单个对象被创建。这个类提供了一种访问其唯一对象的方式,可以直接访问,不需要实例化该类...

2018-11-23 22:50:15 208

原创 简单工厂模式扩展之动态创建对象和配置化开发(C++反射机制的实现)

如果对简单工厂模式不够了解可以先看这里。简单工厂模式流程UML:实现首先定义一个函数指针typedef void* (*Constructor)();工厂类,用来注册、保存和创建要动态创建的类:class CObjectFactory{public: static void registerClass(std::string className, Constructor c...

2018-11-23 15:02:36 1149

转载 C++ 简单工厂模式

原文: https://blog.csdn.net/u011012932/article/details/70652199 简述简单工厂模式(Simple Factory Pattern)又叫做静态工厂方法模式(Static Factory Method P...

2018-11-23 09:12:35 1190

原创 QListView自定义Item

前言  要实现的效果类似网易云PC客户端本地音乐页面的效果:  效果图:实现  QListWidget和QListView都能实现,先说一下两者的区别吧,QListWidget和QListView的主要区别在于QListView是基于Model,而QListWidget是基于Item,QListWidget继承于QListView。也就是说QListWidget插入数据的话我们只能通过...

2018-11-21 15:56:06 14880 12

转载 Qt 之 QSS(语法高亮)

简述语法高亮是文本编辑器用来显示文本的,特别是源代码,根据不同的类别来用不同的颜色和字体显示。这个功能有助于编写结构化的语言,例如:编程语言、标记语言,这些语言的语法错误显示是有区别的。| 版权声明:一去、二三里,未经博主允许不得转载。详细描述语法高亮能帮助开发者很快的找到程序中的错误。例如,大部分编辑器会用不同的颜色突出字符串常量。所以,非...

2018-11-16 10:21:41 517

转载 关于Ubuntu中Could not get lock /var/lib/dpkg/lock解决方案

在Ubuntu中,有时候运用sudo apt-get install 安装软件时,会出现一下的情况E: Could not get lock /var/lib/dpkg/lock - open (11: Resource temporarily unavailable)E: Unable to lock the administration directory (/var/lib/dpkg/...

2018-11-14 21:40:50 162

转载 WaitForMultipleObjects用法详解,一看就懂

原文:https://blog.csdn.net/sac761/article/details/52456385WaitForMultipleObjects是Windows中的一个功能非常强大的函数,几乎可以等待Windows中的所有的内核对象。函数原型为:DWORD WaitForMultipleObjects( DWORD nCount, // number...

2018-09-28 13:55:33 1005

MuWinWindow.rar

Qt自定义无边框,自定义标题栏,实现拖动窗口靠边半屏,靠顶全屏的效果。Qt自定义无边框,自定义标题栏,实现拖动窗口靠边半屏,靠顶全屏的效果。

2020-06-27

Qt去掉标题栏添加边框阴影

ShadowWidget 基于Qt5的去掉标题栏之后添加边框阴影的解决方案。 四种解决方法: 1. 如果是Windows平台,那么可以调用Windows相关API。 2. 使用Qt的QGraphicsDropShadowEffect类来实现。 3. 使用Qt的qDrawBorderPixmap函数来实现。 4. 自己构造出边框阴影QImage并绘制。

2018-12-10

ListView自定义Item

实现ListView自定义Item,重写代理类,实现类似网易云pc客户端地效果

2018-11-21

Qt自定义按钮弹窗控件。

Qt自定义按钮弹窗控件。点击按钮弹出窗体,自定义圆角,阴影效果。

2018-10-21

ffmpeg及所需第三方库

ffmpeg源码及所需第三方库,链接所需的librtmp库。编译步骤可以查看本人博客。

2018-08-02

openssl-1.1.1 win32 debug和release库

vs2015编译的 openssl-1.1.1 win32 debug和release库文件

2018-07-09

zlib 32位和64位 vs2015工程

zlib 32位和64位 vs2015工程。打开后可以通过属性设置动态库或者静态库,release模式或者debug模式,方便调试。

2018-07-09

linux 串口模拟 python脚本

ubuntu下串口模拟工具,直接python virtualCom.py & 即可

2018-06-08

qml自定义信息提示框

qml 自定义 信息提示框 消息提示框 可以根据信息的多少大小自动调整

2017-10-28

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

TA关注的人

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