自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 QLineEdit

1、设置lineEdit只能输入大于的0数字头文件:#include <QIntValidator>#include <QRegExp>QRegExp regx("^[1-9][0-9]*$");QValidator *validator = new QRegExpValidator(regx,ui.lineEdit);ui.lineEdit->s...

2020-03-13 22:26:06 382

原创 Qt加载qss文件

void loadStyleSheet(const QString &styleSheetFile){ QFile file(styleSheetFile); file.open(QFile::ReadOnly); if (file.isOpen()) { QString styleSheet = this->styleSheet(); styleSheet +=...

2019-08-30 14:22:50 437

原创 Qt--窗口添加logo

1、在Qt Creator中,为项目新建一个资源文件,选择Qt Resource File,名字为logo.qrc2、右击生成的qrc,选择AddPrefix,输入/logo3、右击生成的logo,添加现有文件4、在pro文件中添加: RESOURCES+=logo.qrc5、最后调用this->setWindowIcon(QIcon(":/logo/CA-D...

2019-08-29 19:04:12 1377

原创 QProgressDialog的简单使用

//用于计数int barNum = 0;//进度条最大值int barSize = ycName->size()+ yxName->size();//1参 正文 2参取消按钮名 3参最小值 4参最大值 5参设为NULL,否则会继承父类一些你不想要的东西QProgressDialog *proBar = new QProgressDialog(tr("正在解析实际点"),t...

2019-08-26 11:54:47 828

原创 QWidget设置模态显示

有时候用到QProgressDialog这个进度条类的时候,希望模态显示,而QProgressDialog是继承QWidget对于QWidget的模态显示://Qt::NonModal 不阻塞//Qt::WindowModal 阻塞父窗口,所有祖先窗口及其子窗口//Qt::ApplicationModal 阻塞整个应用程序setWindowModality(Qt::Applica...

2019-08-26 11:49:23 3311 1

原创 QTableWidget中实现QCombobox或QLineEdit

1、将QCombobox插入到表格中QComboBox *combo=new QComboBox();QStringList sList;sList <<tr("1")<<tr("2");combo->addItems(sList);ui.tableWidget->setCellWidget(0,1,combo);主要是通过setCellWid...

2019-08-26 09:11:49 2703 1

原创 Qt获取treewidget所有节点

QMap<string,QTreeWidgetItem*>treeNodeName;string nodeNameStr;QTreeWidgetItemIterator ite(ui.substationTreeWidget);while(*ite){ nodeNameStr = (*ite)->text(0).toStdString(); treeNodeNam...

2019-08-13 10:09:54 5080

原创 SQL语句中有关单引号、双引号和加号的问题

字符串是用单引号包起来的,而+号是用来连接这些字符串的.,在数据库里的字段,如果是整型,不需要用单引号,是字符串就要加单引号,其它类型根据实际情况来看,而双引号就是用来拼接字符串的,单引号是sql的固有写法,如果你要动态的来拼接,涉及到变量,所以要用“+”来组合各个字符串片段。最终结果无非就是得出能在数据库查询分析器中执行的sql语句。而对字符型进行条件查询的时候是要加 单引号的:sel...

2019-08-05 23:16:24 4655

原创 windows往磁盘拷文件,拒绝访问

1、首先确保该盘的权限,全部设置成完全2、设置完后,如果还会遇到问题:客户端没有所需的特权方法:cmd以管理权限打开,输入 icacls c:\ /setintegritylevel M...

2019-07-15 20:21:07 1550 1

转载 C++分割字符串

依据指定字符,解析字符串,放置vec里。void splitStr(const string& s, vector<string>& v, const string& c){ string::size_type pos1, pos2; //找到字符,返回下标。 pos2 = s.find(c); pos1 = 0; w...

2019-06-18 10:31:39 1269

转载 main函数的带参启动--int main(int argc,char* argv[])

argc 是 argument count的缩写,表示传入main函数的参数个数;argv 是 argument vector的缩写,表示传入main函数的参数序列或指针,并且第一个参数argv[0]一定是程序的名称,并且包含了程序所在的完整路径,所以确切的说需要我们输入的main函数的参数个数应该是argc-1个;#include <iostream>using na...

2019-06-10 14:13:29 2720

原创 Qt—遍历文件夹并筛选的简单使用

1、 遍历某路径下的所有文件QString svgPath = "E:\";QDir dir(svgPath);dir.setFilter(QDir::Files | QDir::Hidden | QDir::NoSymLinks);dir.setSorting(QDir::Size | QDir::Reversed);QStringList filterList;filterL...

2019-06-05 14:25:33 2108 1

转载 string、char*、char[]之间的转换

一、string转char*主要有三种方法可以将str转换为char*类型,分别是:data(); c_str(); copy();1.data()方法,如:string str = "hello";const char* p = str.data();//加const 或者用char * p=(char*)str.data();的形式同时有一点需要说明,这里在devc++中...

2019-05-23 13:38:57 115

转载 QString 转 char*

需求:1、QString 类型转char*类型(需考虑QString变量是否包含中文,不然会乱码)法一:先将QString转换为标准库中的string类型,然后将string转换为char*std::string str = filename.toStdString();const char* ch = str.c_str();法二:如果有中文,需要先设置编码格式,如果没有可以...

2019-05-20 19:00:40 2856

原创 navicat:连接不上本地数据库,报错:2003

原因:mysql服务未开启。解决方法:以管理员启动cmd(否则拒绝访问),输入 net start mysql,启动服务即可。如果输入命令之后提示:发生系统错误2找不到指定文件”时,在cmd输入“mysql -u root -p”查看mysql是否安装成功。...

2019-04-29 11:08:41 4684

原创 linux编译问题:fatel error:QMap(或者QObject或者Qtcore/QFile)没有那个文件或目录

找到qt的安装目录,比如我的是opt/Qt4.8.5,建立这个文件夹的映射,然后将其放到对应的目录下,我的是usr/appsoft,注意,有的时候需要把名改为qt4.8.5,具体看报错打印...

2019-04-22 20:07:50 2159

原创 Linux编译问题:/usr/bin/ld:cannot find -lcrypto(只是拿这个举例)

编译时,找不到这个库,那是因为Linux下的库,一般是以lib为前缀,以1.0之类的为结尾。1、先找到libcrypto.so.1.0这个文件2、创建这个文件的映射(右击即可)3、去掉.so后面的后缀,lib不用去,将其移到对应的搜索路径下...

2019-04-22 20:03:04 1394

原创 Linux——debian遇到的无限返回登陆界面问题

项目中,编译代码时,因为项目代码是qt的,所以需要先qmake,再make,而qmake时需要用qmake在debain的全路径,每次都要写全路径很麻烦,所以就将qmake路径(即qt在debian的安装路径)加到debian的环境变量里,即/etc/profile文件中。但是路径中有了 \ 转义字符,导致环境变量问题,从而一直返回登陆界面。既然找到了原因:那就以命令行打开profile文件修...

2019-04-22 19:56:45 2294

原创 vs2010编译问题:LINK : fatal error LNK1104: 无法打开文件“xxx.dll”

原因:因为编译的时候开着程序。。。。。dll库正在使用中。

2019-04-19 14:16:05 1131

原创 线程基础

除了进程之外,线程是一个十分重要的概念,特别是随着CPU频率增长开始出现停滞,而开始往多核方向发展,多线程,作为实现软件的并发执行的一个重要方法,有着越来越重要的地位。一、什么是线程线程(Thread),有时也叫轻量级进程(LWP),是程序执行流和CPU调度的最小单元。一个标准的线程由线程ID,当前指令指针(PC),寄存器集合和堆栈组成。通常意义上讲,一个进程由多个线程组成,各个线程之间共...

2019-04-14 01:15:03 136

原创 如何使用cmd命令操作mysql

1.先启动cmd窗口2.窗口中输入:net start mysql (关闭的命令为 net stop mysql)3.输入mysql -hlocalhost -uroot -p 回车,进入mysql数据库,其中-h表示服务器名,localhost表示本地;-u为数据库用户名,root是mysql默认用户名;-p为密码,如果设置了密码,可直接在-p后链接输入,如:-p666需...

2019-04-10 09:32:07 6630

原创 Qt之线程的使用

Qt中创建线程的方法:一、继承QThread继承QThread,最常用的方法了。可以通过重写虚函数voidQThread::run(),在里面实现想做的操作,实现新建线程的目的。但是这种方法,我们每一次要新建一个线程都需要继承Qthread,实现一个新的类,有点不太方便。但是相对于Qrunnable,这种方法的好处就是我们可以直接调用对象的start()函数启动线程,而Qrunna...

2019-03-27 23:46:19 366

原创 Qt之TCP通信

首先工程文件:QT += networkQt下Tcp通信的整个流程 :服务端:服务端除了使用到了QTcpSocket类,还需要用到QTcpSever类:1. 创建监听套接字 (用于监听)QTcpServer server = new QTcpServer(this);2. 给套接字设置监听server->listen(QHostAddress::Any, p...

2019-03-27 23:30:09 646

原创 Qt之QString常用函数

1、QString的常用功能函数(1)QString::QString()构造一个空字符串,不被分配任何东西,也就是说长度和数据指针都为0;(2)bool QString::isNull() const判断字符串是否为NULL(3)bool QString::isEmpty() const判断字符串是否为空(2)和(3)的区别,就是NULL字符串和空字符串的区别,一个NULL字...

2019-03-27 23:01:23 2502

原创 Qt之QFileInfo的常用操作

Qt文件信息获取之QFileInfo在Qt中为文件的操作和信息获取提供了许多方便的类,常用的有QDir,QFile,QFileInfo以及QFileDialog,在本文中主要介绍用于获取关于文件信息的QFileInfo类。QFileInfo可以获取文件的名称和位置信息,此外,还有文件的大小,文件的访问权限以及此文件是不是一个符号链接等信息。不仅如此,我们还可以通过这个类来查看文件的创建时间,修...

2019-03-27 22:55:23 3038

原创 Qt之QSettings

1、Qt读写ini文件 .ini文件是Initialization File的缩写,即初始化文件。 除了windows现在很多其他操作系统下面的应用软件也有.ini文件,用来配置应用软件以实现不同用户的要求。一般不用直接编辑这些.ini文件,应用程序的图形界面即可操作以实现相同的功能。它可以用来存放软件信息,注册表信息等。 (1)ini文件格式 ini文件...

2019-03-27 22:52:52 589

原创 Qt之udp通信

一、UDP的特点UDP(用户数据报协议)是一种简单轻量级、不可靠、面向数据报,无连接的传输层协议。二、UDP适合应用的几种情况1、网络数据大多为短消息2、拥有大量客户端3、对数据安全性无特殊要求4、网络负担非常重,但对响应速度要求高。三、利用UDP进行通信因为UDP是无连接,所以通信不需要建立连接,只要知道对方的IP地址和端口号就行了。(1)首先需要绑定端口号,...

2019-03-27 22:49:17 1391

原创 大小端的判断及转换

大端模式:是指数据的高字节保存在内存的低地址中,而数据的低字节保存在内存的高地址中,这样的存储模式有点儿类似于把数据当作字符串顺序处理:地址由小向大增加,而数据从高位往低位放;这和我们的阅读习惯一致。 小端模式:是指数据的高字节保存在内存的高地址中,而数据的低字节保存在内存的低地址中,这种存储模式将地址的高低和数据位权有效地结合起来,高地址部分权值高,低地址部分权值低。(1)为什么...

2019-03-27 21:51:59 735

原创 取绝对值的库函数:abs和fabs

头文件都需调用#include<cmath>或者是<math.h>作用:取绝对值差别:abs:求整数的绝对值fabs:求浮点数的绝对值示例:int abs(int i); //处理int类型的取绝对值double fabs(double i); //处理double类型的取绝对值float fabsf(float i)...

2019-03-26 06:02:21 2456

原创 sql常用语句

1、数据库的常用操作(1)创建数据库CREATE DATABASE Nuctech (2)删除数据库DROP DATABASE Nuctech (3)创建表CREATE TABLE Zhaocl(name VARCHAR(50),gender VARCHAR(50),age INT) (4)删除表DELETE dbo.Zhaocl --删除表数据,不删除表结构,不释...

2019-03-26 05:59:57 350

原创 如何判断一段程序是由C++编译还是C编译

(1)如果是要你的代码在编译时就发现编译器类型,就判断_cplusplus或_STDC_宏,如果是一个C文件被编译,那么_STDC_就会被定义,_STDC_是预定义宏,当它被定义后,编译器将按照ANSIC标准来编译C语言程序。通常许多编译器还有其他编译标志宏。#ifdef __cpluspluscout<<"c++";#elsecout&l...

2019-03-26 05:45:45 3142

原创 Qt--定时器的使用

Qt提供了两种定时器,一种是QObject类的定时器,另一种是QTimer类的定时器。(1)QObject类的定时器如果该类直接或间接继承了QObject,就可以使用这个。通过函数startTimer()来启动,通过killTimer()来结束,通过QTimerEvent来处理定时器事件。函数原型:int QObject::startTimer(int interval, Qt...

2019-03-26 04:20:55 3768

转载 C++之对象的序列化与反射

第一次接触对象的序列化与反射,理解尚浅,有什么不对的虚心接受指正。在项目中,之前做过一个小功能,在系统开启后,会弹出一个进度条,是为了从数据库中将系统需要的数据读出来放到到内存,然后每读一部分,进度条会实时增加。之后的一次机会同事说,这个进度条可以再进行优化,像这样每次加载进度条都从数据库中读取,如果数据库繁忙,进度条会很慢,之后就提到的对象的反射。比如在网络通信中,因为不允许传递对象,可以将...

2019-03-25 00:05:05 1134 1

原创 C++实现链表的基本操作

链表的每一个结点都是由数据域和指针域组成的,每个结点中的指针域指向下一个结点。Head是“头指针”,表示链表的开始,用来指向第一个结点,而最后一个指针的指针域为NULL(空地址),表示链表的结束。一个结点中必须包含一个指针变量,用来存放下一个结点的地址。实际上,链表中的每个结点可以用若干个数据和若干个指针。结点中只有一个指针的链表称为单链表,这是最简单的链表结构。定义单链表结构的简单形式如下:...

2019-03-24 18:34:20 266

原创 qt之信号与槽的原理

只要问到qt的亮点是什么,不得不说就是信号与槽机制。信号与槽类似观察者模式。在面向对象的编程中,都会创建很多实例,而每个实例都是独立的,要想每个实例能够协同合作,那么就会需要一种对象间传递消息的机制,在很多框架中都采用回调函数来进行对象间信息传递。回调函数就是一个函数指针,如果想要一个处理函数通知一些事件,你需要将这个指针传递给处理函数。处理函数在适当时间调用回调函数。MFC就是使用的回调...

2019-03-22 00:29:18 16496 4

转载 网络通信:TCP一些小干货 >>> 服务端如何检测客户端断开了连接

在网络通信中,一种很常见架构:C/S架构。如果在server端开一条线程专门处理socket连接,这就涉及到一个问题,如果socket连接断开(不论是正常断开还是异常掉线),怎么才能知道客服端的连接情况呢,server端这边是绝对被动的,sever端不能主动断开连接。也没有连接链路维持包之类的,而且client端发送数据的时间也是不定的。而在socket连接断开后, server要能够知道连接...

2019-03-15 00:26:36 4137

原创 C++重写string类

C++提供的string并不是那么好用,而Qt中的Qstring提供了很多接口。往往我们需要重写string类class MyString{ // 重载 << 操作符 friend std::ostream& operator<<(std::ostream& out, MyString &str); // 重载 >> 操作...

2019-03-10 17:32:09 497

转载 QSharedMemory

QSharedMemory 类提供了对一段共享内存的访问。既提供了被多进程和多线程共享的一段内存的访问。也为单线程或单进程锁定内存以实现互斥访问提供了方法。这个类在不同操作系统的使用是有差异的,这里只说下载windows下的,在windows中,QSharedMemory并不“拥有”这段共享内存。当所有“拥有一个QSharedMemory的实例从而附着于某一段共享内存”的进程或线程销毁了它...

2019-03-10 02:35:45 7273

转载 C++ 中 new 操作符内幕

本文主要理解new的实际原理:即new operator、operator new、placement new一、new 操作符(new operator)人们有时好像喜欢有意使C++语言的术语难以理解。比方说new操作符(new operator)和operator new的差别。当你写这种代码:string *ps = new string("Memory Manageme...

2019-03-10 02:35:22 118

原创 C++头文件有.h和没有.h

现在标准的C++头文件没有.h扩展名,将以前的C的头文件转化为C++的头文件后,可以加上c的前缀表示来自于c,例如cmath就是由math,h变来。 iostream.h里面定义的所有类以及对象都是在全局空间里,所以可以直接使用cout,但如果你用iostream,就不能直接使用cout了,iostream里面所定义的东西都在标准命名空间std里面,所以你必须加...

2018-12-02 23:07:16 5210

Qt自定义控件库.rar

qt常用控件-自定义。

2020-01-15

空空如也

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

TA关注的人

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