- 博客(28)
- 收藏
- 关注
原创 qt 同时设置多种表头样式
就没办法使用#hHeader、#vHeader的样式,也就是只有通用的样式生效了。样式表可以通过#来选择与ObjectName一样的控件使用该样式,当通过调用。最后通过new一个新的QHeaderView解决了问题。
2023-12-31 20:13:57
631
原创 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
295
原创 QT VS编译环境无法打开包括文件type_traits
个人不推荐配置环境编译,除非你非常熟,因为配置环境变量需要你知道有哪些路径需要添加,否则添加了还不行的话,你都不知道是什么原因。如果你的VS安装好后,有了不同的编译版本,同时也安装了qt-vsaddin,qt也安装好了。像我的这样,qt选项的构建套件配置也没有任何警告或错误提示,qt没有把对应的版本的VS编译环境识别,需要自己添加时。上面的方法我都试了都没用,最后发现QT->工具->选项->kits->编译器配置时,有个选项没选。红色框是VS的脚本文件,不同的版本有不同的脚本文件可以选。
2023-08-18 10:51:13
3283
原创 QGraphicsView放大时,paint有时不被调用,导致图像绘制不出来(2)
这问题是我在不继承QGraphicsLineItem(调用setLine),而是继承QGraphicsItem时,绘制曲线导致的。通过调试,发现boundingRect并不是每次绘制都会调用,所以当我们改变了QGraphicsItem::boundingRect时,需要场景(scene)调用该item的boundingRect来获取到新的区域,以便判断该QGraphicsItem是不是在QGraphicsView的可视范围内,从而觉得需不需要调用QGraphicsItem::paint来绘制。
2023-08-16 15:56:10
882
2
原创 慎用QGraphicsDropShadowEffect绘制阴影,会导致部分控件一直resizeEvent、重新绘制
QGraphicsDropShadowEffect会导致一些事件一直被触发
2023-07-04 11:46:16
609
原创 C/C++一个很好用的关键字——sizeof
众所周知,sizeof是用来求变量或者数据类型所占用的内存大小。但一般人的写法都是sizeof(数据类型),很少有人写sizeof(变量);sizeof可也以用来求数组长度的,不管是求一维数组还是二维数组,但它不能用于求数组里面的字符串长度。而且sizeof很多情况下都是在编译时完成,此时sizeof得出的结果是常量,所以编译时完成的sizeof,并不会额外增加程序运行时的负担。求变量长度。可以用于C++的模板函数和auto关键字修饰的变量。//源.cpp#include <stdio.h&
2022-03-26 18:21:26
984
原创 QT Critical error detected c0000374
在使用QT写GraphicsView时,运行程序添加Item时,无缘无故报错了,debug调试也是跳到QT源码上面去,还都不是报同一个位置的错误,有些还是new的位置报错。而报错信息是“Critical error detected c0000374”,搜出来的文章也都是内存不足、越界之类,还有说用智能指针的问题,但以上问题我都没有。当内存充足时,new还能报错,那应该是跟内存没多大关系了。加上在代码不改或者一些毫无影响的改动的情况下,报错还不是在同一个地方,我觉得可以排除内存不足、越界之类。1、但程序蹦
2021-07-30 12:38:45
5093
5
原创 QGraphicsView放大时,paint有时不被调用,导致图像绘制不出来(1)
缩放的时候没有任何问题,但放大到某个范围就出现下面的情况。现象如如下三张图,原本绘制了两个多边形,放大了就发现右边的多边形没了(图2),缩放回去又出现了,再放大两次,两个都没了(图3),缩放回去又出现。一开始也找不到相关解决方法,后来突然想到了QGraphicsItem::boundingRect是跟绘制有关,给QGraphicsItem::paint做绘制依据,所以出现这现象应该是跟我返回的boundingRect有关。经过实践,确实是跟boundingRect有关,一旦boundingRect的
2021-06-16 16:26:12
2175
5
原创 为什么浮点类型变量不能直接比较?而是用一个范围?
并不是不可以,而是不推荐,因为容易出错。从下面的例子中能看出(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
1373
原创 解决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
6470
原创 自己给自己写了一个有趣的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
293
原创 VS编译错误 C2675 一元“++”:“_Iter”不定义该运算符或到预定义运算符可接收类型的转换
如果在错误列表那双击就会跑到标准库的文件里去了,但错误明显不可能是标准库的问题,肯定是自己哪里写错。因为VS的编译信息会在输出窗口打印出来,所以在输出窗口那搜索"error"就可以定位到打印编译错误的地方,但哪行并不是我们想要的,直接看下一条编译信息,看在哪个文件哪行(在编译信息那双击就行),这样就可以知道错误在哪了。以上就是我对那个编译错的查找方法,导致这错误的原因是对map的insert函数错误使用。...
2020-05-23 15:19:14
2719
原创 QT(qCompress和qUncompress)与zlib(compress和uncompress)相互调用
通过对qCompress和compress压缩的数据进行打印,可以知道qCompress比compress的数据长四个字节
2020-05-20 16:52:07
5174
2
原创 编译器的堆空间不足
我用debug模式一点事都没有,结果切换回release编译报了10个错误,全是"编译器的堆空间不足"。网上找到有条说跟内存有关,然后我看了下任务管理器,16G内存用了10G,但还是报这个错,后来把写软件关联,把内存降到了3G多,然后再编译就通过了。很奇怪...
2020-04-10 16:00:38
6616
2
原创 QTableWidget setitem不显示
1、如果是调用insertRow插入行的,再调setRowHeight设置行高就可以了。2、如果不是,那可能是rowCount返回的是0,这需要调setRowCount设置行数或者调insertRow插入行,再调setRowHeight设置行高就可以了。...
2020-04-09 10:49:05
4416
2
原创 二进制:没有找到接受“const _Ty”类型的左操作数的运算符(或没有可接受的转换)
我遇到的问题是“二进制“<”: 没有找到接受“const _Ty”类型的左操作数的运算符(或没有可接受的转换) ”。双击错误信息后,到了xstddef文件的struct less的()操作符重载那。遇到这种直接跑到模板下面的情况,通常都是用了某个模板类等模板相关的类型、函数,而我是自己定义了一个结构体,然后用了set容器,由于set容器是会自己排序的,而我的结构体又没有写<的操作符重载...
2020-03-31 11:46:06
5106
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
4427
原创 C语言数组
void main(){ int a[10] = { 0,1,2,3,4,5,6,7,8,9 }; //a代表的是数组的首地址(首元素的地址),其类型是int *。 //&a = 10; //&a其实就等同于一个常量,常量是不能做左值的。比如数组a的首地址是0x1234,那么&a就是代表0x1234,所以0x1234=10是不对的。 //正确操作应该如下 int...
2019-06-08 11:57:29
1162
原创 VS不能使用回车键和删除键及其他键问题
原因:系统win10,用搜狗输入法中文模式在VS上打中文时按了shift后就会出现这样的问题。如:在下面这状态下按shift就会出现如题的问题。解决方法:再切回中文模式打字或者把输入法的选词框弄出来再消失(不能按shift)就可以了,然后在切换回英文模式就能正常码代码了如:再把这框弄出来再按删除键或者回车键或者选词就可以了...
2019-05-20 16:07:33
14932
7
原创 C语言 指针变量及相关的知识
指针是一个特殊的变量,因为他的运算方式和所代表的东西跟基础数据类型不一样。指针变量存储的是内存单元的地址编号,这地址就跟我们家门口的门牌号一样。当用解引用运算符(*)的时候,CUP就会到对应的内存单元取内容,至于取多少,主要看定义时定义的是什么类型的指针,也可以用下标操作符([])。
2019-03-24 15:03:16
471
原创 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
3764
原创 QT获取信号的发送者
兰布达表达式(Lambda)for(int i = 0; i &lt; 5; i++){ QMessageBox *messageBox = new QMessageBox; messageBox -&gt;setText(QString::number(i)); messageBox -&gt;setWindowModality(Qt::NonModal); messageBox -...
2018-12-06 16:46:44
7170
原创 QT链接外部库的时候出现无法解析的外部符号
出现无法解析的外部符号无非就是找不到那个符号(函数)。除了常见的那几种解决方式,还有一种情况是编译库的位数不对,比如编译库用的编译器是32位的,但你的程序是用64位编译器的,这时也会出现这种情况。我出现这种情况的时候,把QT常用的那几种解决方式都没办法解决,直到我把QT的工程去用VS编译的时,在VS的错误列表中看的了一条VS提示的警告。![在这里插入图片描述](https://img-blog...
2018-11-23 17:30:20
3447
原创 QT MSVC中文编译出错error: C2001: 常量中有换行符
QT上用MSVC去编译部分含有中文的字符串时会出现编译错误error: C2001: 常量中有换行符,但用MinGW就不会。需在后面加个正常的字符才能正常编译,但出现乱码了。其编码如下图,明显的看着编码不对。 如果想都编译成功,那就需要在设置里把“文件编码”的UTF-8 BOM改成“如果编码是UTF-8则添加”。如下图 但这样做直接编译出来的都是乱码。编码如下图 需用QStrin...
2018-08-02 11:42:01
14844
19
空空如也
系统通知能不能别发了
2023-08-24
TA创建的收藏夹 TA关注的收藏夹
TA关注的人