自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(25)
  • 资源 (1)
  • 收藏
  • 关注

原创 QT Creator常用快捷键

QT Creator常用快捷键:快捷键作用F2转到对象声明或定义(与Ctrl+鼠标左键效果相同)F4头文件与源文件切换F10单步跳过F11单步进入Ctrl+E释放后按3左右分栏Ctrl+E释放后按1删除所有分栏Ctrl+L跳转到某一行Ctrl + /多行注释/取消多行注释Ctrl+鼠标滚轮调整编辑区字体大小Ctrl+Shift+R局部变量统一修改Ctrl+Space自动补全...

2022-04-28 15:41:23 779

原创 QT样式表规则及使用详解

1 样式表的语法规则简单来说,样式规则由选择器和声明组成。选择器指定哪些小部件受规则影响;声明指定应该在小部件上设置哪些属性。如:QPushButton { color : red }。其中QPushButton就是选择器,’{ color : red }'是声明部分。 color就是属性,red就是指定给该属性的值。也可以给多种控件同时设置样式,逗号隔开:(给父窗口设置样式,子空间会继承父窗口的样式,相当于全局设置)QPushButton, QLineEdit, QComboBox {color

2022-03-05 11:50:09 2018

原创 QT 滚动条样式美化

QT原生的滚动条样式一言难尽。。。我们通常想要把它美化一下,在样式表中加入如下代码:/* 设置垂直滚动条基本样式*/QScrollBar:vertical{ width:8px; background:rgba(0,0,0,0%); margin:0px,0px,0px,0px; padding-top:9px; /* 留出9px给上面和下面的箭头*/ padding-bottom:9px;}QScrollBar::handle:vertical{

2022-03-04 15:50:14 1687

原创 QT设置按钮QPushButton上图片加文字

如何把一个Button的图标设置为图片加文字呢?首先,我们在QTdesigner上放置一个Qpushbutton,按钮名btnLive,并设置其样式表:QPushButton{background-color:#1E90FF;//背景蓝色border-radius: 10px; //圆角弧度}效果如图所示:然后我们在构造函数中加入如下代码: //new两个Label,一个放置图片,一个放置文本 QLabel* labLiveIMG = new QLabel();

2022-03-03 10:56:06 7487

原创 QT中EventFilter使用方法

//ui->recordCheckBox->installEventFilter(this);bool myMenu::eventFilter(QObject *obj, QEvent *event){ if (event->type() == QEvent::Enter) { ui->moreTips->setVisible(true); } else if (event->type() == QEvent::Leav

2022-03-02 10:10:10 6561

原创 QT入门之main函数中的QApplication a(argc,argv)与exec()作用

一个最简单、最初级的QT程序如下所示int main(int argc,char * argv[]){ QApplication a(argc,argv); MainWindow w; w.show(); return a.exec();}(1)QApplication a(argc,argv);定义一个 Qt 应用程序对象,它的构造函数接收和 main 函数一样的参数,是 Qt 图形界面程序的入口,就像 main 函数是普通 C++ 程序的入口一样。(2)re

2022-03-01 14:37:56 8954 3

原创 C++ stactic局部静态变量只能初始化一次之妙用

如何保证某一耗时的SDK接口调用完成,得到返回值后才能进行下一次的调用请求?我们可以利用静态变量来解决这一问题。我们都知道,C++的语法规定局部静态变量只能被初始化一次。静态变量会被放在程序的静态数据存储区里,这样可以在下一次调用的时候还可以保持原来的赋值。void ExampleClass::slotExample(const int& idx){ static bool flag = 0; if (flag == 1) return; flag = 1; int res =

2022-02-27 23:23:29 1177

原创 QtConcurrent::run()启用一个单独线程,并发执行

Concurrent是并发的意思,QtConcurrent是一个命名空间,提供了一些高级的 API,使得在编写多线程的时候,无需使用低级线程原语,如读写锁,等待条件或信号,简单易用。QFuture<T> QtConcurrent::run(Function function, ...)QFuture<T> QtConcurrent::run(QThreadPool *pool, Function function, ...)简单的说,QtConcurrent::run()函数

2022-02-26 13:35:20 796

原创 C++中的lambda表达式

lambda 表达式表示一个可调用的代码单元,可理解为一个未命名的内联函数,其形式如下:[capture list](parameter list) -> return-type{function body}capture list :捕获列表,能够捕捉上下文中的变量供 Lambda 函数使用(通常为空);parameter list : 参数列表,与普通函数的参数列表一致;return type : 返回类型function body : 函数体,内容与普通函数一样。不过除了可以使用参数

2022-02-25 11:20:31 139

原创 QT踩坑之子线程不能操作UI,否则应用程序卡死

QT易踩坑之在子线程中操作UI,造成应用程序卡死! QtConcurrent::run([=]() { int res = SDKGetMemberInfo(memberNum.toStdString().c_str()); if (res == 0) { MainHandler::GetInstance()->TipMessageBox(QString(tr("Examples of briquette elves"))); } });这里调用SDKGetMemberInfo(

2022-02-24 20:16:20 4339

原创 PostThreadMessage-Windows API线程消息传递

PostThreadMessage是一个Windows API函数。其功能是将一个队列消息放入(寄送)到指定线程的消息队列里,不等待线程处理消息就返回,可以实现线程间消息传递。函数原型:BOOL PostThreadMessage(DWORD idThread,UINT Msg,WPARAM wParam,LPARAM IParam);输入参数:idThread,消息将被寄送的线程的线程标识符。Msg,指定将被寄送的消息类型。wParam,指定附加的消息特定信息。IParam,指定

2022-02-23 15:33:50 538

原创 QT——SVC/SVD(视图-模型-代理)设计模式

MVC 模式代表 Model-View-Controller(模型-视图-控制器) 模式。这种模式用于应用程序的分层开发。而QT中没有Controller说法,而是使用了Delegate委托,因此应称为MVD模式。主要目的是将界面与数据进行隔离,解除耦合性。框架:VIEW:视图。表示用户界面,负责展示数据。其所需要的数据可以从model中间接取出,不接触数据源。MODEL:模型。负责管理数据,提供接口,是唯一和数据集打交道的组件。一个Model可以映射到多个View,这样可以以不同方式查看同一份数据

2022-02-22 16:16:09 561

原创 C++单例模式

单例,顾名思义,就是说一个类只有一个实例,并提供一个访问它的全局访问点,该实例被所有程序模块共享。其优点是可以避免一个全局使用的类频繁创建与销毁,节省系统资源。定义一个单例类有如下三个关键点:(1)构造函数是私有的。防止外界创建单例类对象;(2)使用类的私有静态指针变量指向类的唯一实例;(3)使用一个公有的静态方法获取该实例;最基本的单例模式如下:class Singleton{private: static Singleton* instance;private: Singleton

2022-02-19 18:07:05 525

原创 C++数据类型转换(string、char*、char[]相关)

1、string转const char*std::string str = "HelloWorld!"; //初始化string类型,并具体赋值const char* constc = nullptr; //初始化const char*类型,并赋值为空constc= str.c_str(); //string类型转const char*类型2、string转char[]std::string str = "HelloWorld!"; .

2022-02-17 14:25:12 596

原创 Wireshark网络抓包分析

1、过滤器可以筛选出想要分析的内容。包括按照协议过滤、端口和主机名过滤、数据包内容过滤。常见表达式及含义:eth.src == 40:f0:42:ad:13:26 筛选源mac地址为04:f9:38:ad:13:26的数据包ip.addr == 192.168.1.1 筛选ip地址为192.168.1.1的数据包ip contains “192.168.1” 筛选192.168.1.0网段的数据ip.src == 192.168.1.1 && ip.dst == 1.

2022-02-16 14:26:57 1010

原创 VS中解决方案的属性页常用配置介绍

一、头文件与导入库VC++目录:包含目录——寻找#include<xxxx.h>中的xxxx.h的搜索目录;库目录——寻找.lib文件的搜索目录;C/C++常规:附加包含目录——寻找#include<xxxx.h>中的xxxx.h的搜索目录链接器:常规-附加库目录——寻找.lib文件的搜索目录链接器:输入-附加依赖项:lib库名称提示:1、包含目录和附加包含目录的区别:包含目录:修改了系统的include宏的值,是全局的;附加包含目录:用于当前项目,

2022-02-15 19:45:39 2240 1

原创 Git常用指令

Git分布式的版本控制系统架构:Workspace:工作区Index / Stage:暂存区Repository:仓库区(或本地仓库)Remote:远程仓库常用指令:git stash 保存本地git pull 获取服务器,合并远端最新改动git stash pop合并git commit 提交git push origin HEAD:refs/for/master 提交(master为分支名,可根据实际分支改变)git branch -a 查看所有分支git checkout

2022-02-15 15:09:56 163

原创 QT网络请求之QNetworkAccessManager类使用举例

QNetworkAccessManager 类用于协调网络操作,一旦创建一个 request,该类用来发出请求并发射信号来报告它的进度。QNetworkRequest 类用于表示网络请求,它也充当一个与请求信息相关的通用容器,例如:任何头信息和使用的加密相关的信息。当一个 request 对象被构造时,指定的 URL 决定所用的协议。目前 HTTP、FTP 和本地文件 URLs 支持上传和下载。QNetworkReply 类用于网络请求的响应,当一个 request 被发出后,QNetworkAcces

2022-02-15 14:29:30 3232

原创 QT查找依赖库QT打包

通过QT5自带的windeployqt(不需要下载安装),它可以找到程序(exe)用到的所有库文件,并且都拷贝到exe程序的当前文件。在cmd中输入如下指令其中release.exe的库文件都已经拷贝到当前目录下了,然后只需要将这一堆文件进行打包。...

2022-02-15 11:10:03 1541

原创 TCP/UDP、HTTP、MAC、DNS等计算机网络基础知识

TCP与UDP主要区别:TCP(Transmission Control Protocol 传输控制协议)是一种面向连接的、可靠的、基于字节流的传输层通信协议。可靠是指,TCP为了把数据发送出去后,采用“三次握手”策略,以确保数据传输无差错,不丢失,不重复。TCP面向字节流,实际上是TCP把数据看成一连串无结构的字节流。UDP(User Datagram Protocol 用户数据报协议): 无连接、不可靠、快速传输。UDP是面向数据包报文的。MAC地址:在网络上,通常是经过多台计算机和网络设备中转才

2022-02-15 10:08:04 1585

原创 Visual Studio分析dump文件

利用VS可以很方便的分析dump文件,如果有生成dump文件时对应的.pdb文件,就可以直接定位到出错的代码行。什么是PDB文件?PDB (Program Data Base) 即程序的基本数据,是 VS 编译链接时生成的文件,每个程序集(EXE 或 DLL)都有一个与之对应的 PDB 文件。DPB 文件主要存储了 VS 调试程序时所需要的基本信息,主要包括源文件名、变量名、函数名、对应的行号等等。因为存储的是调试信息,所以一般情况下 PDB 文件是在 Debug 模式下才会生成。有了这个文件,我们才能

2022-02-14 18:00:17 5784

原创 strcpy、strcpy_s、strncpy、strncpy_s 字符串拷贝用法

1、strcpy原型声明:char *strcpy(char* dest, const char *src);功能:将以src为首地址的字符串复制到以dst为首地址的字符串,包括’\0’结束符,返回指向dest的指针。不安全原因:依据源串的\0作为结束判断的,不会检查需要拷贝的缓冲区的大小,如果目标空间不够,就有溢出问题。局限:只能将两个字符串进行完整的复制和赋值,不能实现仅复制某个字符串的前几个字符。要求:src和dst所指内存区域不可以重叠且dst必须有足够的空间来容纳src的字符串。头

2021-12-30 20:15:57 2880

原创 C++回调模式——定义注册调用

举个栗子:例如:SDKManager(上层)需要调用SDKFunc(下层),而在SDKFunc中,需要反过来调用到SDKManager中的的函数SDKCallback(),则SDKCallback()称为回调函数。1、在SDKFunc中,需要做两件事:(1)约定回调函数原型即函数指针typedef void(STD_CALL* POINTERTYPE)(const int, void*, unsigned int, void*, unsigned int);(2)定义注册回调函数注册回调能.

2021-12-12 17:03:04 595

原创 QT property常用小技巧

QT property常用小技巧对于基于QObject的控件都有这个属性,例如QPushButton、QNetworkReply对象等。如下,可以根据VS的提示看下控件是否有这个方法。setproperty+property属性可以使控件携带特定信息,用作标识,十分方便好用。设置标识的方法原型:bool QObject::setProperty(const char *name, const QVariant &value);取标识的方法原型:QVariant QObject::pr

2021-12-05 15:13:10 839

原创 Visual Studio C++常见错误合集

**1、错误:**无法解析的外部符号 “private: static class singleton * singleton::instance” (?instance@singleton@@0PAV1@A);无法解析的外部命令**常见原因:*类成员函数只有声明,没有定义;类成员变量只有声明,没有初始化;例如此处为singleton::instance仅声明但未初始化,源文件中设置singleton singleton::instance = NULL;即可。...

2021-11-27 16:31:09 925

QT 可复用对话框C++——可自定义标题和内容及按钮文本的标准通用对话框

QT 可复用对话框C++——可自定义标题和内容及按钮文本的标准通用对话框

2022-04-29

空空如也

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

TA关注的人

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