自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

HelloKandy的博客

最怕不甘平庸,却又不愿行动

  • 博客(484)
  • 资源 (12)
  • 论坛 (1)
  • 收藏
  • 关注

原创 QT 关于QString去除空格的,大概都在这里了

去除首尾空格、中间空格、全部空格,代码如下://<1>去除字符串前面的空格QString str1 = " 1 2 3 ";str1.remove(QRegExp("^ +\\s*"));qDebug() << "str1=" << str1;//<2>去除字符串后面的空格QString str2 = " 4 5 6 ";str2.remove(QRegExp("\\s* +$"));qDebug() << "str2=" &lt

2021-04-15 20:06:12 14

原创 QT 如何强制触发QResizeEvent

为什么要强制触发QResizeEvent在某个widget中,放置了很多其他控件(如:QPushButton、QLabel等),widget初始化时,其内部的布局都是正确的。但某些情况我们需要对widget内部的控件进行赋值(如设置QLabel的文字),但是其内部控件的显示长度并未跟随文字长度而变化,如果我们自己计算文字长度再来设定控件的大小,未免也太过繁琐。所以就想到了强制发送QResizeEvent事件来出发widget的内部重新进行布局。如何强制触发QResizeEventthis->

2021-04-13 15:56:56 8

原创 QT 如何设置控件的TAB顺序

我们在对界面的控件进行操作时,可以使用键盘的TAB按键实现在不同控件之间来回切换,从而更大程度上减少鼠标的操作。但是作为开发者,是需要对控件的TAB响应顺序进行预先设定的。本文就来讲讲在QT环境里面如何设置TAB按键的响应顺序。1、通过Qt Creator编辑如果是使用Qt Creator开发,那么很简单,直接可以通过界面可视化的操作来设定。切换到设计模式,点击“编辑TAB顺序”鼠标点点点,指定TAB顺序2、通过代码实现Widget::Widget(QWidget *parent)

2021-04-09 16:33:26 15

原创 QT 如何设置QTreeWidget节点的图标

树形控件,在界面开发中算是比较常用的一款控件,一般都会根据节点不同的属性,显示不同的图标。有时也需要设置鼠标选中或者未选中时的状态。设置节点选中或者未选中的代码如下:QTreeWidgetItem* pTreeItem = nullptr;pTreeItem = new QTreeWidgetItem(ui->treeWidget, QStringList(QString("000"))); QIcon icon;icon.addPixmap(QPixmap(":/img/tree/ob

2021-04-09 12:29:58 27

原创 Qt 如何实现窗口的阴影效果

阴影效果,在很多设计中都会用到,其主要目的在于提升了整体画面的层次感,使其更具立体效果!1、实现控件的阴影效果QWidget * widgetInner = new QWidget(this);widgetInner->setGeometry(0, 0, 280, 283);widgetInner->setStyleSheet("background: #FFFFFF;");//实例阴影shadowQGraphicsDropShadowEffect *shadow = new QGr

2021-04-07 12:30:17 33

原创 QT 调试时出现 Unable to create a debugging engine.

QT调试时出现:Unable to create a debugging engine.其原因是:安装Windows SDK时,默认没有安装CDB调试环境!1、打开控制面板,找到Windows Software Development Kit2、鼠标右键菜单,更改,弹出以下界面,选择change,Next3、勾选Debugging Tools for Windows4、等待安装结束5、打开Qt Creator,Auto-detected已经识别到CDB6、再次确认构建套件(Kit)的

2021-04-06 20:39:51 13

原创 QT 屏蔽主界面左上角图标的鼠标单击或双击事件

QT开发的程序,双击主窗口左上角图标,程序会自动退出,但这并不是我们所需要的!可以在子类中重新实现 nativeEvent 事件,屏蔽鼠标单击或者双击来阻止程序退出:跟重新实现 closeEvent 这些事件类似,在MainWindow.h中添加 nativeEventvirtual void closeEvent(QCloseEvent *event);virtual void keyPressEvent(QKeyEvent *event);virtual void keyReleaseEven

2021-03-31 11:52:15 38

原创 QT 如何设置对话框的背景图片

一般而言,设置对话框背景有几种方式:1、通过qss方式居中平铺LoginDialog { width: 980px; height: 590px; background-image: url(:/res/bg_login); background-position: center; background-repeat: no-repeat;}平铺拉伸LoginDialog { width: 980px; height: 590px; background-image:

2021-03-30 11:40:52 40

原创 QT 如何让程序界面在屏幕居中显示

在QT中,软件界面居中显示的代码是这样子的:常规居中显示代码:int main(int argc, char *argv[]){ QApplication a(argc, argv); /* QtWidgetsDemo w; w.show();*/ QtWidgetsDemo w; w.move((a.desktop()->width() - w.width()) / 2, (a.desktop()->height() - w.height()) / 2); w.s

2021-03-22 16:35:31 57

原创 关于QSS 看这一篇就够了!

1、QSS介绍自定百度。2、QSS常用属性大全Qss背景属性(Background)background在一个声明中设置所有的背景属性。background-attachment设置背景图像是否固定或者随着页面的其余部分滚动。background-color设置元素的背景颜色。background-image设置元素的背景图像。background-position设置背景图像的开始位置。background-repeat设置是否及如何重复背景图像。

2021-03-16 11:40:24 195

原创 QListWidget 插入QListWidgetItem 需要避开的坑

QListWidget 插入 QListWidgetItem 有两种方法:1、addItem在QListWidget的最后插入一项。void QListWidget::addItem(QListWidgetItem *item)Inserts the item at the end of the list widget.2、insertItemvoid QListWidget::insertItem(int row, QListWidgetItem *item)Inserts the ite

2021-03-04 10:23:36 107

原创 C++11 使用智能指针改进单例模式

本文主要关于如何使用C++11的智能指针改进单例模式。智能指针在C++11版本之后提供,包含在头文件中,shared_ptr、unique_ptr、weak_ptr。设计初衷:线程安全、垃圾回收、单例对象可接受多个参数。1、使用shared_ptr相对于一般的单例实现而言,使用了可变参数模板使得单例对象可接受多个参数:#pragma once#include <mutex>#include <memory>template<typename T>class

2021-01-14 16:17:57 166

原创 QT 获取各种路径

在QT开发中,总是绕不开需要获取各种路径,本文整理了常用的路径获取,代码如下:#include <QtCore/QCoreApplication>#include <QDebug>#include <QDir>#include <QStandardPaths>int main(int argc, char *argv[]){ QCoreApplication a(argc, argv); //获取程序所在路径 QString app

2020-12-21 19:49:32 335

原创 QT 获取指定目录下特定格式的文件列表

比如,想要获取当前目录下 AutoUpdate___*.zip 格式的所有文件列表#include <QtCore/QCoreApplication>#include <QFileInfoList>#include <QDir>#include <QDebug>/** * @brief 获取指定目录下特定格式的文件列表 * @param dstDir: 目标文件夹 * @param targetName: 文件名前缀,eg:"AutoUpda

2020-12-17 16:08:14 339

原创 QT 各种小技巧

断开某对信号槽的connectQMetaObject::Connection conn;conn = connect(this,&TcpSocket::readyRead,this,&TcpSocket::readData);disconnect(conn);查找本窗口的子控件QList<QLabel*> labelList = findChildren<QLabel*>();QLabel * label = findChild<QLabel *

2020-11-21 15:15:05 92

原创 关于 QWebEngineView 的一些资料

Qt嵌入网页https://blog.csdn.net/u012902367/article/details/105217966Qt5中QWebEngineView的使用https://blog.csdn.net/y396397735/article/details/84707031Qt嵌入浏览器系列QWebEngineView实现浏览器基本功能https://www.jianshu.com/p/352da0c95f3cQWebChannel实现与页面的通信https://www.jian

2020-11-12 09:47:21 87

原创 C++ 关于“Expression: __acrt_first_block == header”的一点总结

先说结论:在MSVC/MT编译时,动态库的接口返回值尽量不要std::string原因分析:导致异常的根本原因是:对象在析构时不能正确释放内存std::string是STL中定义的模板类,所以编译器在编译动态库时会将std::string实例化,在编译exe时也会将其实例化,也就是说有两套std::string实例代码分别在exe和dll中。由于是MT编译的,在exe中并不能区分这个std::string对象的内存是不是自己的的heap中分配的,所以析构result,会调用exe中实例化的std:

2020-10-27 16:50:58 455

原创 C++ 实时显示7z压缩与解压缩的进度

一、7zip下载地址:https://www.7-zip.org/sdk.html二、nmake编译下载完后,进入文件夹:使用VS的命令行工具(nmake)进行编译(命令:nmake /f makefile),在当前目录下生成x86文件夹,里面有本次编译的成果文件:7zra.dll三、转换示例工程(dsw转vs08)打开client7z工程,下载下来的是由dsw格式(N年前的格式,真是不懂得与时俱进),将其用vs08打开(vs17版本打开,会转换失败)四、修改示例代码打开client

2020-10-16 20:58:28 698

原创 借助qtwinmigrate,实现外部程序调用带QT界面的DLL

首先看GitHub提供的示例:下载 qtwinmigrate:https://github.com/qtproject/qt-solutions解压,找到 \qtwinmigrate\examples\qtdll\qtdll.pro,使用QtCreator打开:#include <qmfcapp.h>#include <qwinwidget.h>#include <QMessageBox>#include <windows.h>BOOL WI

2020-09-27 20:47:38 926 3

转载 C++ 使用std::min或std::max 报错!

在Windows项目中,如果使用std::min或std::max,有可能在编译的时候提示以下内容:error C2589 : “(” : “::”右边的非法标记error C2144 : 语法错误:“unknown - type”的前面应有“)”error C2144 : 语法错误:“unknown - type”的前面应有“; ”error C2062 : 意外的类型“int”error C2059 : 语法错误:“)”error C2059 : 语法错误:“)”其原因在于vc和c++模

2020-09-27 19:59:46 2568

原创 7z 常用压缩与解压缩命令

主页:http://www.7-zip.org/支持格式:压缩 / 解压缩:7z, XZ, BZIP2, GZIP, TAR, ZIP仅解压缩:ARJ, CAB, CHM, CPIO, DEB, DMG, FAT, HFS, ISO, LZH, LZMA, MBR, MSI, NSIS, NTFS, RAR, RPM, UDF, VHD, WIM, XAR, Z7-Zip 支持和 Windows 相类似的通配符:“”可以使用星号代替零个或多个字符。“?”可以用问号代替名称中的单个字符。

2020-09-25 17:06:36 1342

原创 bat 格式化年月日时分秒

下面是被调用的 bat 内容,接收两个参数并打印到屏幕:@echo offecho ----------------------------------------------------echo 这是被调用的BAT内容(接收两个参数并打印到屏幕)echo ----------------------------------------------------echo %1%echo %2%::去掉双引号set path1=%~1set path2=%~2echo path1= %p

2020-09-25 10:57:20 502

原创 NSIS + QT 制作自定义界面安装包

NSIS + DUI(DLL形式)制作自定义界面的安装包有很多教程,但是NSIS + QT(DLL形式)实现自定义界面安装包的,简直是凤毛麟角!先展示一下劳动成果,后续再陆续分享教程:安装过程展示:卸载过程展示:...

2020-09-22 12:06:52 724 12

原创 NSIS 如何获取当前时间

1、预定义方式${DATE}当脚本开始编译时当前时区的日期。${TIME}当脚本开始编译时当前时区的时间。${TIMESTAMP}当脚本开始编译时脚本的修改时间戳。注意:以上三个预定义,获取的时间都是常量,不是当前系统时间!!2、使用 !define 的 /date 参数!define /date CUR_TIME "%H:%M:%S %d %b, %Y"Section DetailPrint "${CUR_TIME}" ;14:55:58 10 Sep, 2020SectionE

2020-09-10 15:07:18 310

原创 NSIS 多个条件判断

NSIS多个条件判断怎么写?C++代码:if (A == 1 || B == 1) { //}NSIS代码:${If} $0 = 1${OrIf} $1 = 1 #${EndIf}C++代码:if ($0 == 1 && $1 == 1) { //}NSIS代码:${If} $0 = 1${AndIf} $1 = 1 #${EndIf}C++代码:if ((A == 1 || B == 1) && (C

2020-09-02 21:13:12 734

原创 NSIS + QT 制作安装包的踩坑之旅

先记录下踩坑的事故现场:1、动态库的接口参数用了std::string或者std::vector参考文章:https://blog.csdn.net/zj510/article/details/35290505https://blog.csdn.net/chinabinlang/article/details/80496352https://stackoverflow.com/questions/35310117/debug-assertion-failed-expression-acrt-fi

2020-09-01 20:48:41 397

原创 【Debug】vs调试dump文件避坑指南

先说结论:1、文件版本一致性dmp、pdb、exe确保是同一版本,即使代码未做任何修改,重新编译生成的新版exe不能与旧版exe产生的dmp文件一起调试。2、符号文件位置dmp、pdb、exe最好放在同一目录下,方便设置vs设置符号文件(*.pdb)位置3、代码一致性尽量保证exe的源文件与上次发布exe的源文件一致为什么要确保dmp、pdb、exe版本的一致性?且往下看:正常调试dump文件是这样的:点击“使用 仅限本机 进行调试”后,会切换到崩溃点:但是!代码未做任何修改,重新编

2020-08-05 19:55:25 225

原创 QT qOverload用法示例

以QComboBox作为示例对象。例如,QComboBox类的存在如下信号:void currentIndexChanged(int index);void currentIndexChanged(const QString &);void currentTextChanged(const QString &);当ComboBox的当前索引currentIndex发生变化时,该信号就会被发出。参数index可以传递当前索引值,并且当ComboBox的项为空或者currentInd

2020-08-03 20:14:27 576

原创 QT 如何使用代码实现自定义布局

除了使用QT设计师实现界面的可视化布局外,有时项目开发中需要使用代码来实现界面布局,下面给出的例子就是通过代码的方式实现界面布局的(适合新手入门):#include "mainwindow.h"#include "ui_mainwindow.h"#include <QHBoxLayout>#include <QVBoxLayout>#include <QLabel>#include <QLineEdit>#include <QIntVali

2020-08-03 11:47:11 1728

原创 QT 如何设置 QLineEdit 背景提示文字

设置QLineEdit背景提示文字:ui->lineEditType->setPlaceholderText("请输入用户名");设置背景提示文字的颜色或者字体大小:ui->lineEditType->setStyleSheet("font-size:20px; color:rgb(0,160,230);");

2020-06-30 14:13:52 1456

原创 QT 构建代码时提示 Cannot open output file:Permission denied

错误提示:Cannot open output file:Permission denied原因:进程未结束解决方案:任务管理器,关闭进程

2020-06-28 17:43:39 816

原创 QT 关于程序延时的几种处理方法

1、阻塞型延时阻塞的原理:在延时期间,本线程的事件循环得不到执行。<1>:多线程程序使用QThread::sleep()或者QThread::msleep()或QThread::usleep()或QThread::wait()进行延时处理。这几个函数带来的不良效果就是:GUI会在延时的时间段内失去响应,界面卡死。所以,这三个函数一般用在非GUI线程中。<2>:void sleep_msec(int msec){ QTime dieTime = QTime::cur

2020-06-15 10:31:26 1075

原创 QT 如何实现不规则按钮

以前总是时不时有人问我怎么实现不规则按钮,最近特地搜集了几篇关于QT实现不规则按钮的文章:第一个范例第二个范例

2020-05-27 10:10:08 310

原创 Windows 如何阻止屏保运行,并防止系统关闭显示器和进入待机状态

程序启动时,调用:SetThreadExecutionState(ES_CONTINUOUS | ES_SYSTEM_REQUIRED | ES_DISPLAY_REQUIRED);程序退出时,调用:SetThreadExecutionState(ES_CONTINUOUS); 详细参数可参考MDSN:SetThreadExecutionState function

2020-05-26 15:41:22 693

原创 QT 调试信息如何输出到文件(qDebug/qWarning/qCritical/qFatal)

一、基本分类qDebug : 调试信息提示qWarning: 一般的警告提示qCritical: 严重错误提示qFatal: 致命错误提示二、截获信息Qt提供了qInstallMsgHandler 方法用来定制消息发生后如何来处理。qInstallMsgHandler 是一个回调函数,主要是由qDebug、qWarnng、qCritical、qFatal这些函数进行触发。也就是说,qDeubg这些函数处理的消息文本会被qInstallMsgHandler 所指向的回调函数截获,这样就允许用户自

2020-05-26 14:47:47 1143

转载 Windows GetKeyState 和 GetAsyncKeyState 区别

#define KEYDOWN(vk_code) ((GetAsyncKeyState(vk_code) & 0x8000) ? 1 : 0)#define KEYUP(vk_code) ((GetAsyncKeyState(vk_code) & 0x8000) ? 0 : 1)GetKeyState使用::GetKeyState()返回一个short型的数,short型是16位有符号的数据类型,如果要查询的键被按下,返回值最高位被置1,则这个数表示负数,所以可以用<0或&gt

2020-05-25 18:00:04 280

原创 QT QStringList 与 QString 相互转换

QStringList转QStringQStringList listemp;listemp << "Apple" << "Grape" << "Orange" << "Banana";QString str = listemp.join(",");qDebug() << "\r\nstr:" << str;//输出结果如下//str: "Apple,Grape,Orange,Banana"QString strtmp

2020-05-25 15:18:18 1230

原创 QT 调试程序时提示“Cannot retrieve debugging output”

问题描述:项目中并没有定义QT_NO_DEBUG_OUTPUT,在使用Qt Creator调试程序时,IDE的“应用程序输出”提示:Cannot retrieve debugging output解决方案:发现开了两个Qt Creator,而另外一个Qt Creator也正在调试输出,只是那是个没有界面的程序,导致被我忽略了!把另外一个Qt Creator进程结束掉(只打开一个IDE)就可以看到调试输出了。...

2020-05-22 14:39:30 453

原创 《CentOS命令行系列》查看磁盘空间大小

1、查看磁盘整体空间大小df -h2、查看当前文件夹所有文件大小du -sh3、查看指定文件夹下所有文件大小du -h /data/4、查看指定文件大小du -h /home/test.py5、查看指定文件夹大小du -sh /home...

2020-04-30 19:20:26 194

原创 QT 关于使用QThread实现多线程(moveToThread)

在QT4.8之前,是通过重写run函数来实现,每一个任务就新建一个类,这样未免有点麻烦!如果不想每执行一种任务就自定义一个新线程,那么可以自定义用于完成任务的类,并让它们继承自QObject。...

2020-03-31 16:23:21 369

SpreadSheet简单使用实例

1、SpreadSheet是一个Excel操作封装类,使用起来比其他的更为方便。 2、修正了原版SpreadSheet几个错误问题 3、压缩包里面包含了SpreadSheet的简单使用示例。 4、使用vs2008编译通过

2018-02-22

C++获取程序版本信息

通过代码获得程序资源中VS_VERSION_INFO所有信息。

2016-06-15

基于mongoose实现Http Server(多线程)

1、基于mongoose 6.7实现的http server 2、支持多线程(本项目使用vs2008编译) 3、附带mongoose6.7版本源代码,6.7以上的版本,多线程实现方式与现在不一样)

2019-02-14

C++的MVC模式简单示例

C++的MVC模式,界面使用VC/MFC编写。对于MVC模式初学者来说,具有较大的参考价值。

2018-04-17

jsoncpp的简单使用

jsoncpp的简单使用:遍历json所有键值,从字符串中解析json,从文件中读取json数据,写json数据至文件。

2016-06-14

基于winInet的文件上传程序

1、基于wininet的文件上传 2、测试时可使用hfs作为http服务端程序 3、有封装好的类,可直接使用 4、可能因为字符编码问题,需要自行调整

2019-04-04

DllInjector.exe

1、支持dll注入 2、支持选择目标进程 3、界面美观,操作简单 4、非源码,仅仅提供exe形式的软件 ps:需要源码请联系作者

2020-01-14

SpreadSheet的DLL版本(含源代码)

1、修正SpreadSheet的几个错误问题 2、将SpreadSheet封装为DLL(MFC版本) 3、提供了win32程序调用MFC版本DLL的程序示例 4、代码在vs2008下编译通过

2018-07-02

HTTP 获取网页源代码

1、通过访问URL,获取该URL对应的网页源代码 2、将获取到的网页源代码写入本地文件

2019-01-04

sqlite3_blob_test.zip

本项目使用vs2008编译,演示代码使用了两种方式实现插入JPG文件: 1、使用原始的sqlite3接口实现 2、使用cppsqlite3u封装的接口实现

2019-05-15

wechat_avater.exe

1、使用Python编写的获取微信好友头像 2、将微信好友头像拼接成图片墙

2019-07-10

CPictureEx 示例程序

1、CPictureEx 类的示例程序; 2、生成随机验证码的图片并显示; 3、该示例程序基于MFC;

2018-10-12

VS2008无法附加到进程

发表于 2016-05-10 最后回复 2016-05-10

空空如也

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

TA关注的人 TA的粉丝

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