Qt
话与山鬼听
这个作者很懒,什么都没留下…
展开
-
Qt 访问指定目录慢 效率低 QDir QFileDialog QFileSystemModel QTableView
最近平台上使用QTableView + QFileSystemModel来自定义目录管理器然后发现部分客户端上打开目录很慢,基本要10-20秒才能响应,而且是偶发性的问题。经测试,在有访问效率问题的电脑上,使用QTableView会特别明显,QListView还没那么明显。找了很久原因没找到,测试原生的QFileDialog,一样会有效率问题。此时决定自己实现文件目录表,通过QDir来遍历目录。最终发现,QDir的entryList 和entryInfoList都一样存在效率问题。逐句调试源码发原创 2022-05-06 18:39:55 · 1883 阅读 · 4 评论 -
QDialog概率卡死问题
最近碰到一个QDialog概率卡死问题。问题是这样的:在Windows 10 家庭中文版中,特别容易出现QDialog的exec打开后卡死。而在Win10 专业版、企业版,则非常小概率出现这个问题。卡住的现象是QLineEdit光标还在,而整个程序界面动不了,但也不是没有响应。经过猜测和排查,确定了问题出现在QTimer::singleSlot()里面。原因是,我的QDialog的exec是做了延迟加载,让上一个消息循环执行完之后,再执行这个窗体弹出。代码如下:void MyClass::de原创 2021-09-01 16:22:12 · 1753 阅读 · 0 评论 -
Qt实现多边形内环裁剪
最近使用Qt作为绘图引擎时,在使用clipPath的过程中遇到了一些问题。1、Qt的裁剪原理是每次setClipPath都默认对已存在的path进行替换2、如果需要实现多边形内环的裁剪,即扣岛,需要将多边形外环、内环都设置在一个path里面,然后裁剪类型设置为Qt::ClipOperation::IntersectClip示例如下:void QtCanvas::clip(Polygon* ...原创 2019-03-01 08:51:11 · 2607 阅读 · 0 评论