自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(28)
  • 收藏
  • 关注

原创 qt 同时设置多种表头样式

就没办法使用#hHeader、#vHeader的样式,也就是只有通用的样式生效了。样式表可以通过#来选择与ObjectName一样的控件使用该样式,当通过调用。最后通过new一个新的QHeaderView解决了问题。

2023-12-31 20:13:57 358

原创 IShellFolder2::GetDetailsOf第二个参数(UINT iColumn)数值对应详细信息的项

如果想通过windows API获取文件属性各项的数据,可以通过调整IShellFolder2::GetDetailsOf的第二个参数(UINT iColumn)的值。241: 按参与创作的艺术家排序。70: 公司所在地的邮政编码。96: 住宅所在地的邮政编码。153: 最后一次打印的时间。154: 最后一次保存的日期。68: 公司所在国家/地区。71: 公司所在省市自治区。94: 住宅所在国家/地区。13: 参与创作的艺术家。52: 必选的与会者地址。72: 公司所在街道地址。98: 住宅所在街道地址。

2023-10-19 11:50:02 174

原创 QT VS编译环境无法打开包括文件type_traits

个人不推荐配置环境编译,除非你非常熟,因为配置环境变量需要你知道有哪些路径需要添加,否则添加了还不行的话,你都不知道是什么原因。如果你的VS安装好后,有了不同的编译版本,同时也安装了qt-vsaddin,qt也安装好了。像我的这样,qt选项的构建套件配置也没有任何警告或错误提示,qt没有把对应的版本的VS编译环境识别,需要自己添加时。上面的方法我都试了都没用,最后发现QT->工具->选项->kits->编译器配置时,有个选项没选。红色框是VS的脚本文件,不同的版本有不同的脚本文件可以选。

2023-08-18 10:51:13 1429

原创 QGraphicsView放大时,paint有时不被调用,导致图像绘制不出来(2)

这问题是我在不继承QGraphicsLineItem(调用setLine),而是继承QGraphicsItem时,绘制曲线导致的。通过调试,发现boundingRect并不是每次绘制都会调用,所以当我们改变了QGraphicsItem::boundingRect时,需要场景(scene)调用该item的boundingRect来获取到新的区域,以便判断该QGraphicsItem是不是在QGraphicsView的可视范围内,从而觉得需不需要调用QGraphicsItem::paint来绘制。

2023-08-16 15:56:10 455 1

原创 慎用QGraphicsDropShadowEffect绘制阴影,会导致部分控件一直resizeEvent、重新绘制

QGraphicsDropShadowEffect会导致一些事件一直被触发

2023-07-04 11:46:16 417

原创 关于IcmpSendEcho2的使用和回调问题

IcmpSendEcho2的使用和回调问题

2023-02-17 16:13:10 901

原创 C/C++一个很好用的关键字——sizeof

众所周知,sizeof是用来求变量或者数据类型所占用的内存大小。但一般人的写法都是sizeof(数据类型),很少有人写sizeof(变量);sizeof可也以用来求数组长度的,不管是求一维数组还是二维数组,但它不能用于求数组里面的字符串长度。而且sizeof很多情况下都是在编译时完成,此时sizeof得出的结果是常量,所以编译时完成的sizeof,并不会额外增加程序运行时的负担。求变量长度。可以用于C++的模板函数和auto关键字修饰的变量。//源.cpp#include <stdio.h&

2022-03-26 18:21:26 944

原创 QT Critical error detected c0000374

在使用QT写GraphicsView时,运行程序添加Item时,无缘无故报错了,debug调试也是跳到QT源码上面去,还都不是报同一个位置的错误,有些还是new的位置报错。而报错信息是“Critical error detected c0000374”,搜出来的文章也都是内存不足、越界之类,还有说用智能指针的问题,但以上问题我都没有。当内存充足时,new还能报错,那应该是跟内存没多大关系了。加上在代码不改或者一些毫无影响的改动的情况下,报错还不是在同一个地方,我觉得可以排除内存不足、越界之类。1、但程序蹦

2021-07-30 12:38:45 4340 5

原创 QGraphicsView放大时,paint有时不被调用,导致图像绘制不出来(1)

缩放的时候没有任何问题,但放大到某个范围就出现下面的情况。现象如如下三张图,原本绘制了两个多边形,放大了就发现右边的多边形没了(图2),缩放回去又出现了,再放大两次,两个都没了(图3),缩放回去又出现。一开始也找不到相关解决方法,后来突然想到了QGraphicsItem::boundingRect是跟绘制有关,给QGraphicsItem::paint做绘制依据,所以出现这现象应该是跟我返回的boundingRect有关。经过实践,确实是跟boundingRect有关,一旦boundingRect的

2021-06-16 16:26:12 1644 4

原创 利用翻译文件使QMessageBox按钮显示中文

之前弄软件翻译功能的时候,调QMessageBox静态函数生成的提示框按钮是英文的,为了一致,就上网找了解决方法,然后看到了这篇文章QMessageBox如何显示中文按钮。直接把这文章的处理内容复制到翻译文件下(.ts)再发布翻译。...

2020-11-06 15:21:11 451 1

原创 为什么浮点类型变量不能直接比较?而是用一个范围?

并不是不可以,而是不推荐,因为容易出错。从下面的例子中能看出(true打印出来是1,false打印出来是0),由于浮点数有精度的问题,数值结果很容易出现偏差。f2 - 81.2不等于0是因为,f2是float类型的,字面量81.2默认是double,所以由于81.2到float类型已经精度不准了,减去精准的81.2得到的结果肯定也不准了。f1/5=f3也是一样的道理,但由于f2和f3都是81.2转过去的,所以这两是相等的,f3跟81.2是不相等。==0也是一样的道理。如果要比较,结合数据类型和自己要求的精度

2020-10-24 00:47:36 1134

原创 解决QtQAxBase: Error calling IDispatch member SaveAs: Exception thrown by server

workbook->dynamicCall(“SaveAs (const QString &)”, file);file是不能用’/’,如果调QCoreApplication::applicationDirPath()等QT的API获取路径的,都需要调replace(’/’, ‘\’)把’/‘替换成’\’,或者自行把’/‘替换成’\’。注:workbook的来源QAxObject *excel = nullptr; QAxObject *workbooks = nullptrQAx

2020-07-14 22:41:21 5748

原创 自己给自己写了一个有趣的BUG,数组越界越到程序自身的安全空间

当初为了把0x0-0xFF打乱,因为char和unsigned char保存到内存的值都是一样的,都是十六进制(也就是-1的char和255的unsigned char做一个字节的比较时是相等的,因为十六进制都是0xFF),只是表示出来不一样而已,所以就没用unsigned char。结果就出现了上面BUG,当value=-23~-21时才会这样,count的值大于了256,跳出了循环。原因:打三个地址出来一看,count的地址(0x4ffc28 )- flag(0x4ffc40)等于十进制的-24,.

2020-06-11 16:00:37 243

原创 VS编译错误 C2675 一元“++”:“_Iter”不定义该运算符或到预定义运算符可接收类型的转换

如果在错误列表那双击就会跑到标准库的文件里去了,但错误明显不可能是标准库的问题,肯定是自己哪里写错。因为VS的编译信息会在输出窗口打印出来,所以在输出窗口那搜索"error"就可以定位到打印编译错误的地方,但哪行并不是我们想要的,直接看下一条编译信息,看在哪个文件哪行(在编译信息那双击就行),这样就可以知道错误在哪了。以上就是我对那个编译错的查找方法,导致这错误的原因是对map的insert函数错误使用。...

2020-05-23 15:19:14 2383

原创 QT(qCompress和qUncompress)与zlib(compress和uncompress)相互调用

通过对qCompress和compress压缩的数据进行打印,可以知道qCompress比compress的数据长四个字节

2020-05-20 16:52:07 3974 2

原创 编译器的堆空间不足

我用debug模式一点事都没有,结果切换回release编译报了10个错误,全是"编译器的堆空间不足"。网上找到有条说跟内存有关,然后我看了下任务管理器,16G内存用了10G,但还是报这个错,后来把写软件关联,把内存降到了3G多,然后再编译就通过了。很奇怪...

2020-04-10 16:00:38 6482 2

原创 QTableWidget setitem不显示

1、如果是调用insertRow插入行的,再调setRowHeight设置行高就可以了。2、如果不是,那可能是rowCount返回的是0,这需要调setRowCount设置行数或者调insertRow插入行,再调setRowHeight设置行高就可以了。...

2020-04-09 10:49:05 4007 2

原创 二进制:没有找到接受“const _Ty”类型的左操作数的运算符(或没有可接受的转换)

我遇到的问题是“二进制“<”: 没有找到接受“const _Ty”类型的左操作数的运算符(或没有可接受的转换) ”。双击错误信息后,到了xstddef文件的struct less的()操作符重载那。遇到这种直接跑到模板下面的情况,通常都是用了某个模板类等模板相关的类型、函数,而我是自己定义了一个结构体,然后用了set容器,由于set容器是会自己排序的,而我的结构体又没有写<的操作符重载...

2020-03-31 11:46:06 4775 5

原创 VS编译带QT的工程:error MSB6006: “cmd.exe”已退出,代码为 3。

因为我的工程是拷贝被人的,所以QT路径是不一样的。1. 需要在VS上安装QT插件,然后点击QT VS Tools的Qt Options去配置你的QT编译版本2. 点击ADD选择你的编译版本,如msvc2017,msvc2017_64,msvc2019等。如果已经配置过了可以忽略这一步3. 点击下图位置的选项,然后弹出个窗口点是,最后就可以编译通过了...

2019-11-08 20:43:49 3954

原创 C语言strcpy和memcpy

C语言strcpy和memcpy

2019-08-02 11:16:25 410

原创 C语言数组

void main(){ int a[10] = { 0,1,2,3,4,5,6,7,8,9 }; //a代表的是数组的首地址(首元素的地址),其类型是int *。 //&amp;a = 10; //&amp;a其实就等同于一个常量,常量是不能做左值的。比如数组a的首地址是0x1234,那么&amp;a就是代表0x1234,所以0x1234=10是不对的。 //正确操作应该如下 int...

2019-06-08 11:57:29 966

原创 VS不能使用回车键和删除键及其他键问题

原因:系统win10,用搜狗输入法中文模式在VS上打中文时按了shift后就会出现这样的问题。如:在下面这状态下按shift就会出现如题的问题。解决方法:再切回中文模式打字或者把输入法的选词框弄出来再消失(不能按shift)就可以了,然后在切换回英文模式就能正常码代码了如:再把这框弄出来再按删除键或者回车键或者选词就可以了...

2019-05-20 16:07:33 13899 6

原创 C语言 指针变量及相关的知识

指针是一个特殊的变量,因为他的运算方式和所代表的东西跟基础数据类型不一样。指针变量存储的是内存单元的地址编号,这地址就跟我们家门口的门牌号一样。当用解引用运算符(*)的时候,CUP就会到对应的内存单元取内容,至于取多少,主要看定义时定义的是什么类型的指针,也可以用下标操作符([])。

2019-03-24 15:03:16 402

原创 C语言基础数据类型的隐式转换、截断和解析问题

2019-03-12 16:59:56 6392

原创 QML属性值设置(初始化)方式

QML属性值设置(初始化)方式有很多种,下面列出四种(常量、表达式、变量或者函数方式赋值)方式:第一种方式–常量://常量方式赋值Rectangle{ id: rect1 x:0 y:0 width:10 height:30}第二种方式–变量://变量方式赋值,变量可以来自他上层(上司)的。Rectangle{ id: rect2 x: rect1.width y:...

2018-12-26 10:46:33 3546

原创 QT获取信号的发送者

兰布达表达式(Lambda)for(int i = 0; i &amp;lt; 5; i++){ QMessageBox *messageBox = new QMessageBox; messageBox -&amp;gt;setText(QString::number(i)); messageBox -&amp;gt;setWindowModality(Qt::NonModal); messageBox -...

2018-12-06 16:46:44 6759

原创 QT链接外部库的时候出现无法解析的外部符号

出现无法解析的外部符号无非就是找不到那个符号(函数)。除了常见的那几种解决方式,还有一种情况是编译库的位数不对,比如编译库用的编译器是32位的,但你的程序是用64位编译器的,这时也会出现这种情况。我出现这种情况的时候,把QT常用的那几种解决方式都没办法解决,直到我把QT的工程去用VS编译的时,在VS的错误列表中看的了一条VS提示的警告。![在这里插入图片描述](https://img-blog...

2018-11-23 17:30:20 3223

原创 QT MSVC中文编译出错error: C2001: 常量中有换行符

QT上用MSVC去编译部分含有中文的字符串时会出现编译错误error: C2001: 常量中有换行符,但用MinGW就不会。需在后面加个正常的字符才能正常编译,但出现乱码了。其编码如下图,明显的看着编码不对。 如果想都编译成功,那就需要在设置里把“文件编码”的UTF-8 BOM改成“如果编码是UTF-8则添加”。如下图 但这样做直接编译出来的都是乱码。编码如下图 需用QStrin...

2018-08-02 11:42:01 14249 19

空空如也

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

TA关注的人

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