摘要:
一、Qt正则表达式QRegExp Qt使用QRegExp实现正则表达式,常用函数如下: 函数 说明 cap(int n) 返回第n个子表达式的内容,第1个(cap(0))是整个内容 captureTexts() 返回捕获的表达式的内容列表,返回值是QStringList,第1个是整个字符串 exac 阅读全文
摘要:
一、简介 该程序命名为Lucky,实现的功能如下: 1. 加载抽奖人员名单,并保存加载路径; 2. 单击左键或者点击ctrl+s开始抽奖,并滚动显示人员名单,显示的人员名单格式为 部门-姓名。 3. 单击左键或者点击ctrl+s停止抽奖,并固定显示中奖人员名单。 工具:Qt5.13 + msvc20 阅读全文
摘要:
WM_COPYDATA消息可以实现window应用程序之间的数据传输,是同步传输方式。 需要用到结构体 COPYDATASTRUCT typedef struct tagCOPYDATASTRUCT { DWORD dwData; //32位自定义的数据 DWORD cbData; // lpDat 阅读全文
摘要:
参考:https://www.cnblogs.com/LyShark/p/12869454.html 1. C字符串操作 strtok 实现字符串切割: 将字符串根据分隔符进行切割分片.返回分隔符之前的字符串, strlen 获取字符串长度,包含末尾的'\0' strcpy 字符串拷贝 strcat 阅读全文
摘要:
目录 一、C++强制类型转换 二、字符串之间的转换 三、数字类型与字符串之间的转换 四、十六进制数据与字符串转换 一、C++强制类型转换 C++提供了四种强制类型转换: 强制转换类型 功能 备注 static_cast 非多态类型的转换,不能用于两个不相关类型的转换,比如不能用于整型和整型指针之间转 阅读全文
摘要:
1.1、wchar_t、char区别 ANSI:char,可以用strcat()、strcpy()、strlen()等str开头的函数处理char*字符串; UNICODE:wchar_t是Unicode字符的数据类型,是我们常说的宽字符;可以用wcscat()、wcscpy()、wcslen(0等 阅读全文
摘要:
代码: if(!doc.setContent(&file)){读取失败操作}发现总是返回false; 使用如下代码调试: if(!doc.setContent(&file,&sErrormsg,&iErrorLine,&iErrorCol)) errmsg返回是格式有问题.解决方法: 一定要确保读取 阅读全文
摘要:
系统:windows Qt版本:5.10/5.13 电脑中已经安装5.10版本的,安装5.13版本的不知道是否会出现问题,故此记录。 下载安装Qt5.13,安装过程跟之前版本的基本没差别,安装路径 D:/Qt/; 安装完成。没有做任何操作,创建一个新项目,编译->成功..运行exe提示缺少那几个Qt 阅读全文
摘要:
1.如果安装了小番茄,看下自己的小番茄的设置里,source of C/C++ content需要选择 Default Intellisense,选择visual assist是识别不到的,具体是为什么不清楚.... 2.检查上述后可以按照如下操作: ->保存更新后的ui界面; ->回到VS界面,右 阅读全文
摘要:
方法一:项目-属性-C/C++-预处理器定义,添加_CRT_SECURE_NO_WARNINGS。 方法二:使用fopen_s,fscanf_s等安全函数。 阅读全文
摘要:
1. 使用_getcwd() std::string getModulePath() { bool flag = false; std::string myStr; const int iLength = 1024; char ModulePath[iLength] = { 0 }; char* p 阅读全文
摘要:
QPlainTextEdit是一个多行文本编辑器,用于显示和编辑多行简单文本。 一些常用的函数有: appendPlainText(const QString) 向 PlainTextEdit 组件添加一行字符串 QString toPlainText() 将全部文字内容输出为一个字符串 Int b 阅读全文
摘要:
show()显示非模态对话框,exec()显示模态对话框。 非模态对话框不会阻塞程序的线程,因此 如果你的对话框时创建在栈上,跳出作用域之后,对象便销毁了,对话框会一闪而过; 如果使用new在堆上创建对话框,跳出作用域之后对象不能被销毁,但是建立在堆上需要考虑释放内存的问题; 非模态对话框不会阻塞线 阅读全文
摘要:
QMainWindow窗口状态栏 实时显示时间: 1.获取实时时间使用定时器QTimer, QTimer *timer = new QTimer(); connect(timer, &QTimer::timeout, this, &时间更新函数);//时间更新函数是自定义的一个槽函数 timer-> 阅读全文
摘要:
解决:文件-高级保存选项,选择utf-8编码。 阅读全文
摘要:
1. 环境:VS2015+QT5.10 解决:在头文件中声明 #pragma execution_character_set("utf-8") 2. QT5.10中控件显示中文总是乱码,即使添加了 #pragma execution_character_set("utf-8")显示还是乱码, 解决: 阅读全文
摘要:
属性设置: 首先 然后 可以实现。 阅读全文
摘要:
1.选择配置管理器 2.在弹出的配置管理器界面 活动解决方案配置下拉列表中选择新建 3.弹出的新建解决方案配置名称输入自定义的名称,这里以Release为例,输入完成后点击确定。 可以看到配置管理器中有release选项 4.在项目属性中找到预处理器定义,编辑 这里填写自定义的配置名称,这里以_RE 阅读全文
摘要:
1. #include <windows.h> ... SYSTEMTIME st; GetLocalTime(&st); 2. CTime time = CTime::GetCurrentTime(); 阅读全文
摘要:
对文本文件读写时遇到一个问题,fread()读所有内容的时候文件的最后一个字符总会重复读,我的代码如下: FILE* file = nullptr; fopen_s(&file, "D:\\test.ini", "r"); const uint32_t nlen = 1024; std::uniqu 阅读全文
摘要:
假设外部第三方库为 test.h,test.lib,test.dll, 调用的函数是 int fnTest(int param); 一、VS中的静态调用和动态调用 1.1 静态调用 静态调用需要用到第三方的文件:.h .dll .lib 静态调用跟使用本项目内的函数差不多,区别的一点在于本项目内的函 阅读全文
摘要:
2.unique_ptr-独占指针 独占型的指针不允许其它的智能指针共享其内部的指针,不允许通过赋值将一个unique_ptr赋值给另外一个unique_ptr unique_ptr<int> p1(new int(10)); unique_ptr<int> p2 = p1;//错误的,不能复制给一 阅读全文
摘要:
3.weak_ptr--弱引用的智能指针 用来监视shared_ptr,不管理shared_ptr内部的指针,没有重载操作符*和->,不会增加引用计数 基本用法: 1.通过use_count()获得当前观测资源的引用计数 2.通过expired()判断观测的资源是否已经被释放 3.通过lock()方 阅读全文
摘要:
智能指针是存储指向动态分配对象指针的类。三种智能指针:std::shared_ptr/std::unique_ptr/std::weak_ptr. 使用时需要加上头文件 #include<memory>1.共享智能指针--shared_ptr 初始化 shared_ptr初始化可以通过reset方法 阅读全文
摘要:
1.运行程序程序弹出The CDB process terminated 2.调试弹出窗口提示缺少qtcreatorcdbext.dll 1.运行程序程序弹出The CDB process terminated 安装QT后第一次新建一个console程序,执行qmake--构建--运行,弹出The 阅读全文
摘要:
项目中有很多时候用到外部dll,调用的时候如果用静态调用,程序exe目录下有很多dll,看起来很乱,不利于后续维护;动态调用可以把dll放在想放的文件夹内,但是如果一个dll要用到的函数很多,动态调用就会很麻烦。采用可变参数模板类可以让动态调用变得像静态调用一样。 注:仅在支持C++11的IDE下使 阅读全文
摘要:
所需的函数参数不固定,需要用到带有可变参数的函数,类似printf();项目中需要打印信息等也会用到带可变参数的函数。 C语言标准库的头文件 #include<stdarg.h>包含一组能够遍历可变长参数列表的宏,如下: 1 /* 2 va_list 用来定义一个指针变量,该指针变量表示参数列表中的 阅读全文