- 博客(25)
- 资源 (3)
- 收藏
- 关注
原创 Qt去掉自带边框后实现窗口拉伸缩放
一.背景描述在实际开发当中,很少会直接用Qt自带的边框,经常是去掉自带的边框,然后重新使用部件+图片来构建带有企业产品性质的边框。去掉了Qt自带的边框后,随之也去掉了自带的窗口拉伸缩放功能,这就导致了在产品使用过程中失去了一定了灵活性。为此,需要我们重新实现该功能。二.实现原理从Qt原生边框中自带的拉伸缩放功能使用中,我们可以大概猜测到基本的实现原理,就是当鼠标靠近四边、四个角时,会对鼠标的形状进行改变,如果此时按下鼠标左键并进行拖动,那么就会...
2022-05-20 20:00:00
6195
6
原创 QTableWiddget实现复选框和自定义编辑功能
目录一.背景描述二.实现概述三.具体实现3.1 QTableWidget复选框功能实现:3.2 可编辑功能实现四.完整项目下载一.背景描述在日常的开发当中,可能会在原生的QTableWidget加上一些针对产品的特殊功能,例如想要实现在表格里既可以勾选,也可以编辑的功能,如图(1)所示:当然QTableWidget本身便自带复选框可编辑功能,为什么要多此一举呢?确实,QTableWidget自带的setEditTriggers接口便可实现可...
2022-04-17 13:46:45
4992
原创 QT在线安装的那些坑
1.QT在线安装时容易出现界面未响应问题在打开Qt在线安装工具时需以管理员身份打开。2.在线安装慢因为默认用的是国外下载源,可切换成国内下载源,例如可用以下几个:中国科学技术大学:http://mirrors.ustc.edu.cn/qtproject/online/qtsdkrepository/windows_x86/root/qt/北京理工大学:http://mirror.bit.edu.cn/qtproject/online/qtsdkrepository/windows_x86
2021-05-23 01:35:45
12181
原创 C++之获取string字符串长度的方法
C++中获取string字符串长度的方法主要有3种:使用length()成员方法获取; 使用size()成员方法获取; 使用strlen()函数获取。1.使用length()成员方法进行获取string str = "abcde";int len = str.length();2.使用size()成员方法进行获取string str = "abcde";int len = str.size();3.使用strlen()函数获取string str = "abcde";
2021-04-27 21:31:12
4662
原创 C++之变量初始化顺序
C++中变量的初始化顺序如下:1.基类的静态变量或全局变量; 2.派生类的静态变量或全局变量; 3.基类的成员变量; 4.派生类的成员变量;类成员变量初始化时注意事项:类成员在定义时不能初始化; 类中const成员常量必须在构造函数初始化列表中初始化; 类中static成员变量,必须在类外初始化; 成员变量在使用初始化列表初始化时,与构造函数中初始化成员列表的顺序无关,只与定义成员变量的顺序有关; 成员变量在构造函数中初始化时,成员变量在构造函数中的顺序有关。...
2021-04-27 21:20:13
716
原创 C++之delete与 delete []区别
delete只会调用一次析构函数,而delete[]会调用每一个元素的析构函数。delete与new配套使用,delete[]与new[]配套使用。
2021-04-27 11:32:44
114
原创 C++存储区
C++存储区主要分为五大类型:全局变量与静态变量区、常量区、局部变量区(栈)、动态存储区(堆)、自由存储区1.全局变量与静态变量区存放全局变量、静态变量,程序运行结束后释放。2.常量区存放常量,不允许修改。3.栈存放局部变量、函数参数。由编译器控制,自动分配和释放。4.堆malloc/free在堆存储区上申请和释放内存,由人控制。5.自由存储区用于new/delete/delete [] 在自由存储区(是一种概念抽象,具体取决于底层实现,一般也是由malloc/fre
2021-04-27 11:27:54
807
原创 C++之new和malloc的异同
1.相同点new和malloc都用于申请申请动态内存。2.相异点2.1 申请和释放配套使用new进行动态内存申请时,配套使用delete进行释放;使用malloc进行动态内存申请时,配套使用free进行释放,进行malloc时。2.2 属性new/delete是C++关键字,需要编译器支持;malloc/free是库函数,需要头文件支持,即需包含<stdlib.h>。2.3 申请失败new申请动态内存失败时,会抛出bac_alloc异常;malloc.
2021-04-27 11:16:14
611
原创 C++之实现strlen获取字符串长度
int Strlen(const char * str){ const char * s = str; while (*s != '\0') { ++s; } return (s - str);}
2021-04-26 22:01:37
472
原创 C++之不使用库函数实现strcpy
C++之不使用库函数实现strcpychar * strcpy(char * dest, const char * src){ if (dest == nullptr || src == nullptr) { return nullptr; } while ((*dest++ = *src++) != '\0') { NULL; } return dest;}返回值为char *是为了实现链式表达式。...
2021-04-24 01:01:06
366
原创 C++之实现string构造、析构、拷贝、赋值
C++之实现string构造、析构、赋值String类定义如下:class String{public: //普通构造函数 String(const char *str = nullptr); //拷贝构造函数 String(const String& other); //析构函数 ~String(); //赋值运算符重载 String& operator= (const String& other);private: char * _data;
2021-04-24 00:40:21
351
原创 VS Code + PlantUML搭建UML编写环境
1.VS Code安装VS Code是微软的一款轻量级编辑器,甚至可以算的上一款轻量级的IDE,支持大量的插件工具,除了可以用来写代码外,用来写各种技术文档也是极为方便。VS code 下载地址:https://code.visualstudio.com/VS code 安装没什么比较复杂的步骤,直接小白式安装,不想自定义一下配置的话一直下一步到结束即可。2.PlantUML安装PlantUML不需要额外进行下载安装,可在VS Code的扩展市场中直接搜索进行安装。Ctrl+Shif
2020-10-10 20:26:41
2356
原创 C++获取系统错误代码以及相应的错误信息
通常在调用Win32API失败时,可通过调用GetLastError()函数获取错误代码,然后根据错误代码可以查到调用失败的原因。其函数原型如下:DWORD WINAPI GetLastError(VOID);通过该函数获取的仅仅是错误代码,想要知道具体原因还需要查找该返回错误码所对应的错误信息。当然,也可以进一步通过调用FormatMessage函数获取相应的错误信息,其函数原型如...
2019-10-02 00:24:48
2529
原创 C/C++之目录创建
在日常开发中进行目录的判断以及创建可以说的上是家常便饭了,在进行一层目录 的创建比较简单,直接调用CreateDirectory即可实现。在VS中点击F12即可看到其定义如下:#ifdef UNICODE#define CreateDirectory CreateDirectoryW#else#define CreateDirectory CreateDirectoryA可以...
2019-09-29 22:27:59
1600
原创 Python之字符串
在 Python 中,用引号(单引号/双引号)括起的都是字符串,如:"This is a string"'This is also a string'修改字符串大小写的方法1.将每个单词的首字母都改为大写:title()str = "hello worold"print(str.title()) #这里输出:Hello Worldprint(str) ...
2019-06-18 21:38:57
127
原创 异常关机后重启VS2010恢复修改过的文件变成乱码或者空白时解决方法
前天,博主遇到了个挺刺激的事,就是笔记本的电源不知道什么时候断开了,导致突然关机了,后面新加的代码都没来的及保存。重新开机后,打开VS,弹出了问是否恢复之前修改过了文档,心想着以前使用这个恢复功能都没啥问题那就恢复吧,然而,恢复后重新打开那些文档,竟然变成空白的了,而且打开时还是自动的选择用记事本打开,我的天哪,当时整个人都差点吓呆了,后面通过以下方法得以恢复。在以下路径中可以找到VS异常...
2019-05-12 23:25:20
4439
原创 基于VS2010 开发的Release版本软件异常崩溃后快速定位bug相关方法
方法:使用.map以及.cod定位bug(暴力崩溃) 使用.dmp定位bug(优雅崩溃)注意事项:在最后面^_^。完整项目源码请点击这里!一.使用.map以及.cod定位bug(暴力崩溃)首先介绍在软件异常崩溃后如何使用.map以及.cod定位bug。需要进行的工程项目属性配置:xxx属性->配置属性->C/C++->输出文件->汇编程序输...
2019-03-10 15:58:51
2395
原创 导入numpy出错处理
在安装PyCharm前已经安装过anaconda了,但在PyCharm中调用numpy却会报错No module named 'numpy'这是因为在PyCharm中使用的是之前最初安装的那个单纯的Python,并没有使用Anaconda中的Python。因此只需PyCharm的settings中设置一下Interpreter就可以了。1.File ->Settings...->Pro...
2018-03-23 21:14:31
3404
原创 Python中import与from……import的使用
在 python 是用 import 或者 from...import 来导入相应的模块。将整个模块(somemodule)导入,格式为:import somemodule如:import threadingimport randomimport time从某个模块中导入某个函数,格式为: from somemodule import somefunction如:from queue imp...
2018-03-23 17:32:21
1730
转载 Python 初学者最容易犯的几个错误。
Python 初学者最容易犯的几个错误,排名不分前后。1、自己写的模块名字和标准库或第三方库重名,造成的错误。请看这个提问者就是犯了这个错误https://www.zhihu.com/question/48633677/answer/111865674?group_id=7385333679175884802、将不带返回值的函数或方法的结果(准确来说返回值为None) 赋给一个变量。In [1]:...
2018-03-23 17:17:34
335
原创 Python3.x的一些基础(二)
在Python中,变量只需被赋予某一值。不需要声明或者定义数据类型。如:i = 5print(i)i = i + 1print(i)逻辑行与物理行所谓物理行(Physical Line)是你在编写程序时你所看到 的内容。所谓逻辑行(LogicalLine)是 Python 所看到的单个语句。Python 会假定每一物理行会对应一个逻辑行。有关逻辑行的一个例子是诸如 print('hello...
2018-03-22 20:32:38
185
原创 Python3.x的一些基础知识(一)
注释任何存在于#右侧的语句都是注释,可以单独一行,也可接在编程语句后面如: print('hello world') #打印hello world # 打印hello world print('hello world')在哪些地方应该注释呢?主要有以下几点: 解释假设 说明重要的决定 解释重要的...
2018-03-22 19:19:06
338
原创 那些年,今天
那些年里,总是羡慕的看着别人在网上发布一些技术文章,而想要下载一些东西的时候总是要弹出个注册界面,或者需要各种积分、各种币,然而我都没有,今天,我也终于有了个属于自己的博客了,我也有机会在这上面分享一些属于自己的经验、程序人生了
2017-09-06 16:18:28
180
Qt无边框之重新实现窗口拉伸缩放
2022-05-20
QTableWidget实现复选框与自定义编辑
2022-04-17
VS2010基于MFC开发的软件崩溃快速找bug以及如何优雅崩溃
2019-03-10
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人