- 博客(26)
- 收藏
- 关注
原创 QT之QDir的mkdir和mkpath的区别
QDir的mkdir和mkpath的区别(1)mkdir是创建子目录,如创建”C:\TestPath\Path”,如果TestPath目录不存在,那么创建Path将失败。只有TestPath存在才能成功创建Path。如果该创建的目录已经存在,那么将返回false。(2)mkpath可以根据目录路径名创建,如”C:\TestPath\Path”,如果TestPath没有的话,也可以创建该路径,如果目录已经存在,将返回true。总之不管TestPath是否存在,都会根据路径名创建成功。注:在使用时需要包含
2022-02-21 10:58:48 5393
原创 QT学习之个人编程规范
每个人对语言的编程习惯都不一样,这里简单介绍一下自己在学习使用Qt时养成的编程习惯,仅供参考。1、命名规则1.1 常规命名规则1.1.1 类命名规则适用对象:(1)窗口控件实现类(所有之间或间接继承于QWidget类的实现类)规则:命名以V 开头示例:VTestWidget(2)其他类规则:命名以C开头示例:CTestDialog(3)所有类规则:除开头文字外,第二个字母也需要大写,命名遵循驼峰命名法示例:参照其他类的示例1.1.2 函数命名规则(一般为类内)(1)类内普通函数
2021-10-08 15:24:41 3325
原创 C++新特性之右值引用&&的使用示例
今天在项目中遇到了一个新的优化方案,算记录个人成长吧代码大概如下://优化前代码//某个类成员函数 /*! CDevConnBE::pushData * @brief 写入数据 * @param data 传入数据 */ void pushData(vector<unsigned char>&& data);...
2021-06-05 16:55:04 223
原创 vs2017打开ui程序出现闪退解决方案
今天打开VS的时候发现双击.ui文件的时候打不开Qt designer,并且一点击ui,VS就会出现闪退现象。自己将VS重新登录和进行电脑的重启都没有解决问题。最后在网上找到了两种解决方法:方法二解决了我电脑上VS2017的这个问题方法一:找到自己的QT安装目录,我自己的是:D:\Qt\5.14.1\msvc2017_64\bin将里面的 Qt5WebEngineWidgets.dll 随便改个名字,比如Qt5WebEngineWidgets111.dll,之后重新打开Qt designer就可
2021-05-29 20:48:37 1342
原创 C++之智能指针auto_ptr
当你在读这篇文章的时候,应该都有这样一个疑问?那就是为什么要使用智能指针。我们先看这样一个示例:#include <iostream>#include <string>#include <exception> using std::string; void memory_demo1() { string* str = new string("今天又找了一天的bug,太累了!!!"); std::cout << *str
2021-05-08 21:01:43 1665
转载 解决VS2015中出现类似于error C4996: ‘scanf/sprintf‘: This function or variable may be unsafe的安全检查错误
用习惯了VS老版本的人当刚使用VS2013/VS2015的时候可能总遇到类似于这样的错误:error C4996: ‘scanf’: This function or variable may be unsafe. Consider using scanf_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.error C4996: ‘sprintf’: This func
2021-05-08 09:43:19 606
原创 C++学习之类的构造与析构2
书接上文,下面介绍赋值构造函数和析构函数。上一篇连接4 赋值构造函数5 析构函数析构函数是成员函数的一种(特殊的成员函数),它的名字与类名相同,但前面要加~,既没有参数也没有返回值。一个类有且仅有一个析构函数。如果定义类时没写析构函数,则编译器生成默认析构函数。如果定义了析构函数,则编译器不生成默认析构函数。析构函数的作用对象销毁前,做释放内存的清理工作,避免造成了内存泄漏。1、析构函数(destructor) 执行与构造函数相反的操作,当对象结束其生命周期时(例如对象所在的函数已调用完毕)
2021-04-29 17:18:57 164
原创 C++学习之类的构造和析构1
相对于面向过程的c语言:根据程序的执行过程,来设计软件的所有细节。c++是一门面向对象的语言。很多人在面试的时候是不是都被问过这样一个问题:c/c++有什么区别和联系?这里我就不多做介绍了,网上有很多这个问题的回复。今天讲述的主角可不是这个,而且相对于c++有独特特性的类中的构造函数。构造函数作用构造函数大概的含义就是类通过一个或者几个特殊的成员函数来控制其对象的初始化过程。个人对构造函数的理解就是:它是类的入口,主要任务就是初始化对象的数据成员,无论何时只要类的对象被创建/在创建一个新对象的时候,
2021-04-29 13:52:38 179
原创 C++学习之类和对象的基本介绍
面向对象编程中,最重要的一个概念就是:类也许刚接触并不知道它到底是什么意思。其他说到底面向对象思想就是来源于对现实世界的认知。就像花是一个抽象的概念,但鲜花(比如月季,玫瑰、、)这些就是一个具体的对象。人类也是一个抽象的概念,指的是所有人的统称,不是指具体的某一个人。每一类事物都有特定的状态,比如花的颜色、花瓣形状、花瓣数量,人的年龄、名字等。这些都是在描述事物的状态。每一类事物也都有一定的行为,比如花的盛开和枯竭,人的吃喝玩乐。这些不同的状态和行为将各类事物区分开来。面向对象编程也采用了类的概念,把事
2021-04-28 16:41:29 201
原创 Qt定时器QTimer的基本使用(二)(补充和示例)
QTimer是一个计时器类,它为我们提供了一个即可重复触发又可单次触发的定时器。它是一个高层次的应用程序接口。要使用它,只需创建一个QTimer类对象,将它的timeout()信号连接到适当的函数上,然后调用其start()函数开启定时器即可,此后,QTimer对象就会周期性的发出timeout()信号。例如,一个1s执行一次的定时器,可以如下设置: QTimer *timer = new QTimer(this); connect(timer, SIGNAL(timeout(
2020-12-29 17:49:30 4829
原创 Qt定时器QTimer的基本使用
QTimer类的使用:首先创建一个QTimer的对象,使用start()来开始并且把它的timeout()信号连接到适当的槽,当这段时间过去了,它将会发射timeout()信号,与这个信号相连的槽就开始执行。当QTimer的父对象被销毁时,它也会被销毁。start()函数的作用是使定时器开始,并且返回一个定时器标识符,或者如果不能开始计时,返回0一:直接在构造函数中创建使用…h#include <QTimer>public slots:void slot_updatePageDa
2020-11-09 14:07:39 4134
原创 QT之生成随机验证码
一:先创建一个QT应用程序,在ui中添加一个QFrame控件,后期将这个控件提升为下面自己实现验证码的类就可以显示出来了。示例代码如下:mainwindow.h#ifndef MAINWINDOW_H#define MAINWINDOW_H#include <QMainWindow>#include "verification.h"QT_BEGIN_NAMESPACEnamespace Ui { class MainWindow; }QT_END_NAMESPACEcla
2020-10-23 14:12:12 1647 6
原创 QT笔记:(一)如何连接MySQL数据库和基本操作
基本语法1.首先在.pro文件里加入QT += sql,让qt支持MySQL2.QSqlDatabase类是实现了数据库连接的操作3.QSqlQuery类执行SQL语句4.QSqlRecord类封装数据库所有记录基本语法QSqlDatabase类QSqlDatabase db = QSqlDatabase::addDatabase("QOCI"); db.setHostName("localhost"); //数据库主机名 db.setDatabaseName("scot
2020-10-22 13:38:04 1135
原创 C++如何生产随机数
C++如何产生随机数由于C++中没有自带的random函数,要实现随机数的生成就需要使用rand()和srand()。不过,由于rand()的内部实现是用线性同余法做的,所以生成的并不是真正的随机数,但在一定范围内可以看成随机的伪随机数。rand()rand()会返回一随机数值, 范围在0至RAND_MAX 间。RAND_MAX定义在stdlib.h, 其值为2147483647。#include <iostream>#include <cstdlib>using nam
2020-10-22 10:42:11 759
原创 C++语法之引用
1.引用的概念;(1)是C++中新增加的概念所以当引用在C编译器(如gcc编译器)中编译的时候,一般会出错(2) 引用可以看作一个已定义变量的别名,切记引用不能单独定义。(3) 引用的语法:Type& name = var(4)当引用做函数参数的时候(引用作为函数参数声明时不进行初始化)例题代码;#include <iostream> #include <...
2020-03-01 14:13:52 550
原创 Visual Studio里常见中文乱码问题的解决方案
1.中文乱码的原因(1)中文在不同编码格式下, 存储的方式不一样.(2)如果程序是A编码方式编译运行的,但是控制台却是以B编码方式来显示, 就会出现乱码.(3)vs的控制台默认编码是GB2312,编号是836注意:GBK编码是兼容GB2312的,一般描述GBK常常就是指BG2312. 如果源代码文件的编码是其他编码格式, 就会导致中文乱码.正常情况下:在vs中新建文件时,该文件默认都...
2020-03-01 13:16:33 69650 14
原创 浅谈数组与指针的区别
定义;数组:数组是用于储存多个相同类型数据的集合。指针:指针是一个变量,但是它和普通变量不一样,它存放的是其它变量在内存中的地址。两者区别如下:1.赋值数组:只能一个一个元素的赋值或拷贝 。除了在初始化数组时可以把所有的元素都初始化一个值。这个可以忽略指针:指针变量可以相互赋值。比如定义了int a[5]和int b[5]后,不能使a = b,是错误的。因为在定义数组的时候,一旦分配...
2020-02-29 12:52:31 692
原创 代码版本管理工具之git
1.什么是git?git是一款开源的分布式版本控制工具在世界上所有的分布式版本控制工具中,git是最快、最简单、最流行的.它现在慢慢已经成为了一种规范.2.说明随着项目代码量越来越大,再用传统的备份打包的方式会感觉到很不划算的.而代码管理工具:它的作用就是把你每一次的更改的内容,或者删除了什么内容等.它都会把你每一次变化的内容记录下来(类似于数据库的方式).这样一来当我们前一天修改的内容...
2020-02-24 16:45:52 351
原创 函数模板与函数重载的区别
函数模板:所谓函数模板,实际上是建立一个通用函数,其函数类型和形参类型不具体指定,用一个虚拟的类型来代表。这个通用函数就称为函数模板。凡是函数体相同的函数都可以用这个模板来代替,不必定义多个函数,只需在模板中定义一次即可。在调用函数时系统会根据实参的类型来取代模板中的虚拟类型,从而实现了不同函数的功能。函数模板的通用公式则参考以下:template < 类型形式参数表 >类型 ...
2020-02-22 22:26:05 3186
原创 新手常犯错误2:( 变量的输入与使用顺序不当)
源代码:#include<iostream>#include<Windows.h>using namespace std;int main(void){ int age; //或者为 int age = 0;(初始化) int num; num = age * 360;cout << "请输入您的年龄: ";cin >> ag...
2020-02-22 21:35:26 387
原创 新手常犯错误1
错误代码:#include<iostream> using namespace std;int main() { cout << "你好,世界" << endl; }运行程序后,发现电脑的控制台程序只是一闪而过,原因在于没有加上**system(“pause”)**这段代码,加上了,控制台就可以一直停留在那里,方便自己观察...
2020-02-22 21:26:50 184
原创 推箱子游戏实现步骤
推箱子游戏简化版最近看笔记的时候, 突然看到了以前做过的推箱子小游戏.下面是整理的内容(1)游戏图片资源: 链接:https://pan.baidu.com/s/1XQWHwwlh_oiHKScbF-IkCg 提取码:rlel (个人百度网盘链接)控件easyX的下载资源: www.easyx.cn 注意:把图形资源要放在存储代码的.cpp文件里(2) 项目需求:...
2020-02-11 21:47:07 4009 1
原创 数据结构之顺序表
十三天(链表)链表是线性表的链式存储方式,逻辑上相邻的数据在计算机内的存储位置不必须相邻 .(也可以说链表是一种物理存储结构上非连续,非顺序的存储结构) 说的通俗的就像你出去串门,需要去A,B,C三个朋友家,彼此间都有距离可以理解为都不在一个村,但我访问只需要先到A的家,在去B的家,最后去C的家就行了.按顺序去访问三个人就像了,无非就是多跑点路,逻辑上有访问顺序就行了,距离上不必有联系. ...
2020-02-08 23:48:15 364
原创 数据结构之链表
数据结构之链表见解链表是线性表的链式存储方式,逻辑上相邻的数据在计算机内的存储位置不必须相邻 .(也可以说链表是一种物理存储结构上非连续,非顺序的存储结构)说的通俗的就像你出去串门,需要去A,B,C三个朋友家,彼此间都有距离可以理解为都不在一个村,但我访问只需要先到A的家,在去B的家,最后去C的家就行了.按顺序去访问三个人就像了,无非就是多跑点路,逻辑上有访问顺序就行了,距离上不必有联系....
2020-02-08 21:33:57 391
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人