自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(962)
  • 资源 (4)
  • 收藏
  • 关注

原创 Qt坐标系统

setWindow并不是控制控件本身的显示,而是控制在其上的绘图行为的显示,它让你可以自由设定坐标,然后你的绘图代码函数里就可以按照你自己设定坐标相对值硬编码,比如上面坐标设置成了painter.setWindow(-50,-50,100,100);setViewPort设置视口的含义是什么的,我的理解是它让painter把图绘制在它指定的区域里,也就是它的参数指定的矩形,这个矩形是物理坐标表示的。并且在这里由于视口是用控件的物理高宽算的,这样即是控件缩放的时候,圆锥也能随着缩放。

2022-11-11 12:26:17 26

原创 SQLite数据库rowid

由于rowid值会一直递增,如果达到所允许的最大值9223372036854775807后,它会自动搜索没有被使用的值,重新使用,并不会提示用户。所以,如果用户的数据库存在这种可能的情况,就应该使用AUTOINCREMENT定义主键,从而避免这种问题。使用AUTOINCREMENT设置自增主键,虽然也会遇到9223372036854775807问题,但是它会报错,提示用户,避免产生rowid所引发的问题。表中插入的第一个条记录的rowid为1,后续插入的记录的rowid依次递增1。

2022-10-26 08:52:16 37

原创 L4L7负载均衡

*所谓四层就是基于IP+端口的负载均衡;七层就是基于URL等应用层信息的负载均衡;**同理,还有基于MAC地址的二层负载均衡和基于IP地址的三层负载均衡。换句换说,二层负载均衡会通过一个虚拟MAC地址接收请求,然后再分配到真实的MAC地址;三层负载均衡会通过一个虚拟IP地址接收请求,然后再分配到真实的IP地址;四层通过虚拟IP+端口接收请求,然后再分配到真实的服务器;七层通过虚拟的URL或主机名接收请求,然后再分配到真实的服务器。...

2022-07-21 15:11:41 134

原创 QListWidgetItem上附加widget

QListWidget在动态增加item的方式下,为item附加的widget可能会发生位置偏移。解决方法是关联一个委托,这个委托并不需要和附加widget有关系,只需要重载updateEditorGeometry函数即可。XItemDelegate.hXItemDelegate.cpp.........

2022-06-22 17:00:27 458

原创 QListWidget中的内容不显示

QListWideget内容不显示

2022-06-22 14:34:48 407

原创 关于模数转换的理解

模拟量到我们要得到的业务数值之间有三个概念:电流,模拟量、工程量。其中电流就是物理意义上的电流,模拟量是电流值,工程量是电流值经过量程换算后得到的业务数值。 在这里要区别电流和模拟量的概念,板子上的模拟量接口或者独立的数模转换模块,我们从它们得到的是电流值。但需要注意,这个电流值虽然我们俗称它为模拟量,但“值”也就意味着它已经是一个数字概念了,也就是“模-数转换”里的那个“数”,也即,此处已经完成了模-数转换,也就是说,板子上的模拟量接口我们虽然叫做模拟量接口,但它实际上它就是模数转换模块

2022-06-02 14:44:57 421 1

原创 QT的.Pro文件在哪儿找帮助手册

2022-05-04 17:53:37 537

原创 Linux获取当前进程名

int GetSelfProcessName(char *name, int len){ char path[1024]; memset(path, 0, sizeof(path)); if(readlink("/proc/self/exe", path, sizeof(path) - 1) <= 0) { return 0; } char *pName = strrchr(path, '/' ); if (pName != NULL && path + s.

2022-04-24 14:48:08 1076

原创 C++模板定义时提示undefined reference to

一般来说,写C++程序时推荐“类的声明和实现分离”,也就是说一个类的声明放在example.h文件中,而这个类的实现放在example.cpp文件中,这样方便管理,条理清晰。但是如果类的声明用到了模板template,则类的声明与实现分离是不可取的,因为这个GCC会报错,比如undefined reference to XXX等错误。所以如果用到了template需要把函数的实现放到类的声明文件中,至于函数是直接在class声明内定义,还是在class声明外定义都可以。...

2022-04-19 16:25:22 1706

原创 Qt中的MIME

1、可以把mime数据看做是描述文件本身的数据,虽然一般我们是按照文件后缀名区分文件类型,但实际上操作系统是按照它预定义的支持的文件格式识别文件。mime类型大全:Shared MIME-info Database2、除了操作系统预定义的文件类型,我们还可以自己扩展,扩展名字一般application/x-开头,例如QT框架就为QAbstractItemModel扩展了application/x-qabstractitemmodeldatalist。...

2022-04-19 08:45:16 964

原创 C++ note 1

1、拷贝构造函数也可以有初始化列表,在子类的拷贝构造函数中想要使父类部分采用拷贝构造的话,必须在初始化列表中显示调用父类的拷贝构造,否则的话,父类部分采用父类默认构造函数。...

2022-04-13 09:54:35 440

原创 C/C++中各种整型定义

包含头文件#include <stdint.h>uint8_t uint16_t uint32_t

2022-04-11 10:14:15 721

原创 Qt Plugin笔记

1、QtPlugin的理念是App定义接口,Dll实现接口,因此接口定义源文件是在App这里。2、Dll没有导出类名这个说法,因为这些类App压根是看不见的,也就是说Dll并不是提供它内部的类名给App,App只是调用App自己定义的接口,只不过这些接口是由Dll内部类实现的,App通过QPluginLoader.instance()函数拿到了指向Dll提供的类对象的指针,这实际上就是导出类的对象指针(即接口的派生类的指针),但是对于App来说它无需关注这个派生类名,它只要按接口定义使用就行了。3、

2022-04-09 22:27:36 458

原创 C++忽略大小写比较字符串

Windows:stricmpLinux:#include <strings.h>strcasecmp

2022-04-08 15:17:06 623

原创 C++string中find,rfind 与 find_first_of,find_last_of

1、find和rfind是匹配整个字符串,find返回第一个匹配处的第一个字符位置,rfind返回最后一个匹配处的第一个字符位置。2、find_first_of和find_last_of匹配字符串中的任一字符(匹配任意一个字符就够了),find_first_of返回第一个匹配的字符位置,find_last_of返回最后一个匹配的字符位置。...

2022-04-08 09:13:34 414

原创 C++ lambda表达式

string txt; auto len = [=]() -> int // 必须用后置形式声明返回值类型 { return txt.length(); }; cout << len(); // 注意,len不是代表的返回值类型,而是函数,所以要加括号

2022-04-07 09:34:07 659

原创 Qt使用动态库

三种方式:方式一、编译时就链接:必须在exe的pro文件中配置动态库的include和lib,而且这种方式要.dll(.so)和.lib(.a)都需要。方式二、动态加载:使用QLibrary,这种方式有个缺陷是它只能调用动态库的导出函数,而且必须是extern"c"的,调用不了类。方式三、动态加载:使用QPluginloader,这种方式最强大,可以调用动态库中类。...

2022-04-05 21:50:58 1751

原创 VSCode C++代码提示和补全

网上都说安装完扩展C/C++ Extension就可以了,但我这儿不行,发现是因为需要自己另外提供头文件,于是利用了mingw的头文件。1、解压i686-4.9.3-release-posix-dwarf-rt_v4-rev1.7z至C:\mingw322、在VSCode中按Ctrl+Shift+P,打开3、在其中增加如下内容 "C:/mingw32/i686-w64-mingw32/include/c++/**", "C:...

2022-03-24 17:35:00 4626

原创 虚拟机Ubuntu安装VMwareTools

按照如下方法安装可以解决如下三个问题:1)无法自适应窗口大小的问题。2)无法与主机相互复制粘贴的问题。3)启动时提示vmwaretools脚本执行错误的问题。安装步骤:1) sudo apt-get autoremove open-vm-tools2) sudo apt-get install open-vm-tools3) reboot4) sudo apt-get install open-vm-tools-desktop5) reboot网上说如遇无法复

2022-03-10 18:01:13 1489

原创 QtCreator 拖放控件后被隐藏

有时候,在UI里拖放控件时,控件会突然消失,但控件还在,此时只要把该文件关了再打开就可以再显示出来。

2022-03-08 15:48:56 251

原创 Latin1、ISO-8859-1和中文表示

从本质上说,ISO-8859-1是单字节编码,自身不能显示中文,若要显示中文,必须和其他能显示中文的编码配合,如“GBK”,“UTF-8",以ISO-8859-1编码的文本,都以bytes[]的形式保存,若要显示中文,只需以显示平台的默认编码格式进行解码即可。若仍然以ISO-8859-1格式解码,得到的中文字符肯定是乱码,因为ISO-8859-1自身不能显示中文。latin1latin1又名ISO-8859-1,编码表如下:demo3一共256个字符!这就是传说中的单字节编码,.

2022-03-08 15:45:52 2487

原创 Linux读写命名管道

int WriteCommuData(const char *port, const char *data){ int res; char fifoName[64]; static int fifo_fd = -1; static char oldPort[32] = {'\0'}; int len, wrote; if (port == NULL || strlen(port) <= 0 || data == NULL || (len = strlen(data)) <= 0.

2022-02-15 16:59:56 456

原创 QProcess执行复合命令

使用QProcess执行由多个程序组成的复合命令,要借助sh,不是直接执行程序名。例:获取开机时间 QProcess proc; QStringList args; args << "-c" << "date -d \"$(awk -F. '{print $1}' /proc/uptime) second ago\" +\"%Y-%m-%d %H:%M:%S\""; proc.start("sh", args); if (proc.wa

2022-02-11 16:11:52 615

原创 linux读取ini配置文件

linux读取配置文件(C语言版) - comeby - 博客园

2022-01-27 17:36:45 2422

原创 QTCreator环境变量空格问题

在Build Environment中添加环境变量时,变量路径最后不能带有空格,否则可能会造成生成的makefile里有关路径失效。

2022-01-27 13:39:37 142

原创 RabbitVCS 对比不同后取消新增内容

2022-01-22 16:52:51 227

原创 使用private类隐藏数据成员

//B.hstruct BP;class B{public: B(); ~B(); PRT();protected:private: BP *bp;};//B.cpp#include "B.h"#include <stdio.h>struct BP { int b;};B::B(){ bp = new BP(); bp->b = 3;}B::~B(){}B::PRT(){ printf("b=%d\n", bp-&.

2021-12-21 09:03:57 196

转载 win10不能访问samba共享问题的解决

一、先确认Linux中smb正确配置可以使用命令smbclient -L //localhost/二、win10配置1、打开win10对smb1.0/cifs文件共享支持2、本地组策略编辑,修改如下图所示三、重启win10

2021-11-26 18:20:16 1632

原创 QMessageBox按钮中文

QMessageBox::warning(NULL, "标题", "提示信息", "确定");// 在QMessageBox的帮助文档中并没有这种用法说明,但通过这个方法却可以让按钮以中文显示

2021-11-15 16:05:17 295

原创 QSettings 出现%3D

QSettings settings;settings.setValue("key", "value");//正确settings.setValue("key=", "value");//错误,别画蛇添足加=,在文件中=会被转义为%3D

2021-11-15 15:16:07 235

原创 解决Ado MySQL“GetRecordCount“返回-1问题

在Open之前m_pConn->CursorLocation = adUseClient; //游标类型

2021-10-11 17:01:58 42

原创 Fail to create empty document错误

MFC程序在执行到ProcessShellCommand处,报"Fail to create empty document"。原因:MainFrm在OnCreate中有如下调用 char file[MAX_PATH]; sprintf(file,"%s\\lib_visual.dat",GetDirPath(PATH_SYS_DIR)); CFile f(file,CFile::modeReadWrite); f.Read(m_bDispLib,sizeof(m...

2021-10-11 14:13:45 774

原创 GCC过滤特定类型警告的方法

增加no-例如-Wunused-function是打开了unused-function类型警告。-Wno-unused-function则是关闭了unused-function类型警告。

2021-09-28 13:45:11 439

原创 VsCode建立工程

方法一:简单的使用“Open Folder”打开一个文件夹,这样也可以作为工程用。但是这样有个缺点,就是文件夹下所有的文件都会显示在工程中。日常一般只关注代码文件,推荐用方法二。方法二:打开空的VsCode,直接执行“Add Folder to WorkSpace”,选择一个文件夹后会弹出保存为WorkSpace的窗口,保存之后,就可以继续使用“Add Folder to WorkSpace”自由代码文件夹了。...

2021-09-18 10:10:29 1950

原创 有符号数转无符号数的扩展问题

首先,计算机中为什么要有补码?答案是使符号位参加运算,从而简化加减法的规则,使减法运算转成加法运算,从而简化机器的运算器。计算机中无论是字符类型,或者是整数类型,也无论这个整数是几个字节。它都用全1来表示 -1。比如一个字节的数值中:1111 1111表示-1,那么,1111 1111 - 1 是什么呢?和现实中的计算结果完全一致。1111 1111 - 1 = 1111 1110,而1111 1110就是-2。这样一直减下去,当减到只剩最高位用于表示符号的1以外,其它低位全为0时,就是最小的负值了,在

2021-09-09 11:35:35 419

转载 C语言中的类型提升——基础概念,但还有很多人搞不清

今天主要说一下C语言的类型提升的事情。下面是引用的一个例子——这个代码是从一个朋友的博文中复制过来的,但是当时这位朋友没有去说明类型提升的问题,而是阐述汇编的过程。/***************************************************************/int main(){int i;unsigned char *p;char *p1;int a[] = {0xffffffff, 0xffffffff, 0xffffffff};

2021-09-09 11:32:42 288

原创 sqlite嵌套删除

delete from table where id=(select min(id) from table);注意:必须带括号

2021-08-20 09:03:36 60

原创 线程特定数据TSD及其实现原理

引言: 单线程C程序有两类基本数据:局部数据和全局数据。对于多线程C程序,添加了第三类数据:线程特定数据 那么为什么要引入线程特定数据呢?试想如果你的一个线程里面嵌套调用了很多函数,而你又想在这些函数之间使用一个 公共的变量,如果在单线程C中,我们是不是就要声明一个全局变量了呢?是的。但是我们想使声明的这个全局变量 只属于我们当前这个实例线程(同一个void *(*start_routine)(void *)可以实例化很多线程),其他的线程访问不到,

2021-08-18 16:28:31 125

原创 四舍六入五平均

#include <unistd.h>#include <stdio.h>#include <stdlib.h>#include <fcntl.h>#include <errno.h>#include <sys/types.h>#include <sys/stat.h>#include <time.h>#include "../apue.2e/include/apue.h"#include .

2021-07-30 14:40:46 104

原创 C++右值引用和std::move

关于“右值引用”不用想太多为什么,可以理解为,它只是为了告诉编译器要移动不要拷贝,以及释放原主人的所有权。std::move也可以用于指针,至于为何连指针这种轻型变量也用移动,可能主要也是出于编译器对于移动就要求这么做。...

2021-06-25 10:05:58 57

TCP/IP协议卷一

TCP/IP协议卷一,英文版 非得凑够20个字吗。

2011-12-27

飞鸽传输源码(VC6)

飞鸽211版代码,已经转换,可在VC6下编译通过

2011-12-26

simple.txt

用来被转换为.dic文件的.txt文件

2007-11-19

jsp由浅入深

jsp入门的好帮手,对jsp基础语法有原理性的阐述

2007-10-12

空空如也

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

TA关注的人

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