草上爬
专注技术,热爱分享
展开
-
Qt高分屏自适应
Windows 上的桌面应用程序可以在不同的 DPI 感知模式下运行。这些模式可实现不同的 DPI 缩放行为,并且可以使用不同的坐标空间。有关 DPI 感知的详细信息,请参阅。请务必显式为进程设置默认 DPI 感知模式,以避免意外行为。有两个清单设置可用于指定进程默认 DPI 感知模式:<dpiAwareness> 和 <dpiAware>。<dpiAware> 已在 Windows Vista 中引入,仅允许将进程默认设置设置为系统感知。原创 2025-03-22 22:48:21 · 672 阅读 · 0 评论 -
QGroupBox取消勾选时不禁用子控件
QGroupBox取消勾选时不禁用子控件原创 2025-03-22 22:27:18 · 205 阅读 · 0 评论 -
QListView实现文件选择功能
QList实现的文件选择功能很常用,但是最高效的做法是先让左侧的源列表默认排序,然后再进行文件选择,这样在选择操作后,无论是源列表还是目标列表,都能很容易保证原来的顺序。原创 2025-02-23 21:14:19 · 269 阅读 · 0 评论 -
QLisView大幅提升数据加载性能
QListView设置uniformItemSizes属性后,数据瞬间就能加载完成。这个属性默认为false,当设置为ture时,会假设QListView中的Item具有相同的尺寸,这样的话,渲染的时候就不会去计算每个Item的大小,从而大幅提升数据加载性能。原创 2017-09-12 21:38:46 · 3464 阅读 · 0 评论 -
QTableView只有一列,显示水平滚动条
默认情况下,当QTableView只有一列时,是不会显示水平滚动条的,如下图所示:但可以通过设置QTableView的属性,使得文本宽度超出QTableView控件宽度时,出现水平滚动条。原创 2017-11-21 10:03:10 · 17683 阅读 · 0 评论 -
Qt之圆角菜单
首先要去掉菜单的边框和阴影,然后就是用样式表了设置圆角等样式了。原创 2016-12-22 19:07:20 · 23077 阅读 · 0 评论 -
QTreeView添加网格线
网格线虽然可以用样式表添加,但效果不好。这里重写QTreeView的drawRow函数来实现网格线的绘制需要注意的是,当我们对QTableView/QTreeView/QTableWidget/QTreeWidget某行选中后,会发现某些单元格设置的前景色被覆盖了,比如设置的红色,一旦选中就变成了白色(如下图所示)。这肯定不是我们想要的,需要用自定义委托将其去掉。原创 2025-02-13 22:52:09 · 456 阅读 · 0 评论 -
QTreeView支持选中整行
默认情况下,树最左侧的展开按钮是无法选中的。下面使用stylesheet来实现整行悬浮(hover)和选中(selected),并修改悬浮和选中时的背景色。原创 2016-10-20 15:02:34 · 4038 阅读 · 0 评论 -
QTreeView和QTableView单元格添加超链接
QTreeView和QTableView单元格添加超链接的方法类似,本文仅以QTreeView为例。在QTableView仿Excel表头排序和筛选中已经实现了超链接的添加,但是需要借助delegate,这里介绍一种更简单的方式,无需借助delegate。二.实现QHTreeView.hQHTreeView.cppMainWIndow.cpp在QHTreeView中通过带下划线的文本来模拟超链接,当鼠标悬浮在带下划线的文本上时,鼠标指针变为小手形状,在鼠标点击时触发超链接。这种方法的缺点原创 2025-02-09 22:35:08 · 388 阅读 · 0 评论 -
QTreeView和QTableView设置单元格边距
QTreeView和QTableView设置单元格边距原创 2024-07-14 19:59:43 · 1333 阅读 · 0 评论 -
QTableView冻结多列
要实现列冻结,也就是说在拖动水平滚动条的时候,第一列永远显示在窗口上。怎么做到这个效果呢?这个例子给的解决办法很简单,我们只需要把两个视图叠加在一起,上层这个视图只显示第一列,下层的视图是全显示,然后拖动时候我们只需要正常拖动下层视图,上层视图联动即可。可用通过tableView->setFreezeColumns(2);设置要冻结的列数,谁然只是多冻结了几列,还是有许多工作要做的,千万不要对产品的需求轻易说Yes。下面稍作修改,让其支持冻结多列。原创 2025-02-09 11:29:30 · 547 阅读 · 0 评论 -
Qt之设置QToolBar上的按钮样式
通常给QAction设置icon后,菜单栏的菜单项和工具栏(QToolBar)上对应的按钮会同时显示该icon。这里使用ToolButtonTextUnderIcon,效果如下所示:工具栏按钮会自适应文本宽度,这样会导致两个按钮不一样大,那么如何将按钮设置成一样大呢,并自定义悬浮和点击的背景色?原创 2025-02-07 23:07:37 · 768 阅读 · 1 评论 -
Qt5.15.2静态编译 MinGW with static OpenSSL
Qt5.15.2静态编译 MinGW with static OpenSSL原创 2024-10-10 01:26:08 · 1462 阅读 · 0 评论 -
Qt之TCP收发图片的例子
Qt之TCP收发图片的例子原创 2024-10-06 17:35:31 · 1690 阅读 · 0 评论 -
Qt之开机自启动
Qt之开机启动,支持设置开机启动和取消开机启动原创 2024-09-25 08:04:30 · 1544 阅读 · 0 评论 -
QTextEidt或QPlainTextEdit高亮光标所在行
QTextEidt或QPlainTextEdit高亮光标所在行。原创 2024-07-19 00:02:38 · 1082 阅读 · 1 评论 -
Qt之使用QPrinter导出PDF
Qt之使用QPrinter导出PDF,如果要新建一页,可以调用bool QPrinter::newPage(),使用QPrinter导出的PDF有个很明显的缺点:没有书签,如果PDF页数较多,这种方式其实是不太行的。原创 2018-03-13 17:47:16 · 29896 阅读 · 1 评论 -
QListView启用水平流式布局
QListView启用水平流式布局原创 2018-04-28 13:55:56 · 13686 阅读 · 0 评论 -
QTreeView第一列自适应
通过setStretchLastSection(bool stretch)可以设置最后一列自适应,对于QTreeView,stretch默认为true。但有时候我们需要设置第一列自适应,比如文件浏览器,共有名称、大小和修改日期三列,大小和日期的宽度几乎是固定的,但名称却可长可短,此时我们希望在窗口大小变化时,第一列的宽度能自动缩放,第二列和第三列的宽度保存不变,而且要支持鼠标拖动调整列宽。原创 2024-06-30 07:25:01 · 1641 阅读 · 0 评论 -
QListView、QTableView或QTreeView截取滚动区域(截长图)
QListView、QTableView或QTreeView截取滚动区域(截长图)本文以QTreeView为例,理论上继承自QAbstractScrollArea的类都支持本文所述的方法。原创 2024-06-23 17:59:03 · 1329 阅读 · 1 评论 -
QTreeView双击任意列展开
重点是如何通过其他列的QModelIndex(假设为index),获取第一列的QModelIndex(假设为firstColumnIndex)。这里要注意index函数的第三个参数,第三个参数为父index,因为通过在tree中仅通过row和column无法确定目标index。下面是一个只有一列的tree,注释中为每行的row和column此时,model->index(0, 0);只会定位到node0,而不是node1-0、 node2-0或node2-1-0。原创 2024-06-23 14:52:46 · 1466 阅读 · 0 评论 -
Qt开发经验总结
增加了很多轮子,同时原有模块拆分的也更细致,估计为了方便拓展个管理。把一些过度封装的东西移除了(比如同样的功能有多个函数),保证了只有一个函数执行该功能。把一些Qt5中兼容Qt4的方法废弃了,必须用Qt5中对应的新的函数。跟随时代脚步,增加了不少新特性以满足日益增长的客户需求。对某些模块和类型及处理进行了革命性的重写,运行效率提高不少。有参数类型的变化,比如 long * 到 qintptr * 等,更加适应后续的拓展以及同时对32 64位不同系统的兼容。原创 2016-12-02 11:46:22 · 10514 阅读 · 2 评论 -
Qt之使用Qt内置图标
Qt内置图标封装在QStyle中,共七十多个图标,可以直接拿来用,能应付不少简单程序需求,不用自己去找图标并添加到资源文件了。下面是内置图标的枚举定义:QStyle提供了QIcon standardIcon()函数用于将内置图标转换为QIcon,同时提供了QPixmap standardPixmap()函数用于将内置图标转换为QPixmap。这两个函数的第一个参数都是上面贴出的枚举值。原创 2024-02-04 20:10:19 · 6863 阅读 · 97 评论 -
分享一个QML实现的电池充电效果(超级炸裂)
分享一个QML实现的电池充电效果(超级炸裂)原创 2018-04-04 14:55:50 · 5758 阅读 · 1 评论 -
Qt之有趣的数字钟
Qt之有趣的数字钟:基于网络代码修改,支持时、分、秒;支持滑动、翻页和旋转。原创 2024-01-09 08:30:23 · 2896 阅读 · 55 评论 -
用Qt开发的十大理由
用Qt开发的十大理由原创 2018-01-16 16:57:00 · 17530 阅读 · 0 评论 -
Qt实现的颜色生成器
有些时候我们需要为一些对象附上随机的颜色,比如我们有这么一个需求,用QCustomPlot绘制曲线,刚开始曲线的颜色默认都是黑色的很不好看,后来为了显示的美观我们想给添加的曲线随机的附上颜色,但是有一个要求,曲线的颜色不能太淡,比如不能是白色。因为图像的背景颜色是白色的,如果曲线也是白色那曲线就会看不到了。这样可以实现我们对随机颜色的要求,但是不满足我们不能为白色的要求,为了避免白色,我们在对这个颜色进行检查,如果r、g、b分量的值都超过230,表示颜色太淡重新随机,但是这样的方法总让人感觉不那么舒服。原创 2018-03-13 17:43:51 · 2289 阅读 · 2 评论 -
Qt之设置QLabel的背景色和前景色
Qt之设置QLabel的背景色和前景色:方法有两种,一种是使用调色板,一种是使用样式表。原创 2024-01-03 18:21:09 · 8376 阅读 · 40 评论 -
Qt之QPainter绘制浪漫星空(快来许愿吧)
前几天发现几篇关于Python的博文,里面不是放烟花(Python烟花秀),就是献爱心(Python跳动的爱心)。以前学Python的时候的时候关于它的简介还是这样的:Python是一种高级编程语言,可以应用于爬虫、大数据、人工智能等方面。没想到Python在GUI方面也这么强大,好在Qt也不怂,,效果不逞多让。还有一篇,感觉不错,用QPainter复刻了一下,代码量和Python版本差不多。原创 2024-01-03 00:04:24 · 3147 阅读 · 15 评论 -
Qt之自定义分页(翻页)控件
Qt之自定义分页(翻页)控件:当数据量较大时,分页显示是个不错的选择。这里用百家姓来演示分页效果,包括首页、上一页、下一页、尾页和跳转。原创 2023-12-27 22:17:04 · 3035 阅读 · 2 评论 -
QML粒子系统酷炫效果合集(不定时更新)
QML粒子系统酷炫效果合集:1.烟花效果;2.文字灰飞烟灭效果原创 2018-04-02 17:57:11 · 7449 阅读 · 1 评论 -
QML实现的毛玻璃效果
QML实现的毛玻璃效果原创 2018-03-08 15:10:10 · 3278 阅读 · 1 评论 -
Qt 性能优化之一:选择合适的视频渲染方案
Qt 性能优化之一:选择合适的视频渲染方案原创 2016-11-04 19:08:48 · 3148 阅读 · 1 评论 -
Qt之判断一个点是否在多边形内部(射线法)
以被测点Q为端点,向任意方向作射线(一般水平向右作射线),统计该射线与多边形的交点数。其次,对多边形的顶点和射线相交的情况,如果该顶点是其所属的边上纵坐标较大的顶点,则计数,否则忽略该点;最后,对于Q在多边形边上的情形,直接可以判断Q属于多边形。在图A中,射线与多边形的顶点相交,这时交点只能计算一个;在图B中,射线与多边形顶点的交点不应被计算;在图C中,射线与多边形的一条边重合,这条边应该被忽略不计。为了统一起见,射线可设定为水平向右,设点P的纵坐标与Q相同,P的横坐标为一大的整数,则可用QP代替射线。原创 2023-12-20 02:06:10 · 3283 阅读 · 0 评论 -
Qt之使用QListView加载相册(富文本ToolTip)
Qt之使用QListView加载相册(富文本ToolTip):如果item的显示效果达不到要求,那么就自定义delegate。原创 2023-12-18 11:37:26 · 3013 阅读 · 0 评论 -
Qt之自绘遥控器圆形主控按钮
Qt之自绘遥控器圆形主控按钮,云台的控制器也是这个样子的,其实贴图也能做,但是没自绘灵活。原创 2018-03-14 14:14:04 · 8965 阅读 · 2 评论 -
Qt调用jrtplib实现单播、多播和广播
jrtplib简介可参考:http://blog.csdn.net/caoshangpa/article/details/51151942RTP协议分析可参考:http://blog.csdn.net/caoshangpa/article/details/51149007windows下编译jrtplib可参考:http://blog.csdn.net/caoshangpa/article原创 2016-09-18 08:29:26 · 10250 阅读 · 13 评论 -
Qt基于librtmp推送H.264
rtmp打包H.264的原理可以参考:RTMP协议分析及H.264打包原理相关文章:【1】Win7(Windows 7)下用VS2012(Visual Studio 2012)编译librtmp【2】libRTMP使用说明【3】 Adobe Media Server 5(AMS)的安装及使用【4】Adobe Media Server 5(AMS)的简单配置【5】H.264(原创 2016-11-11 09:41:21 · 8718 阅读 · 4 评论 -
Qt调用OpenGL API实现彩色旋转立方体
Qt调用OpenGL API实现彩色旋转立方体原创 2018-05-09 20:19:50 · 3262 阅读 · 2 评论 -
Qt5版NeHe OpenGL教程之一:你的第一个多边形
Qt5下OpenGL程序的新写法可参考:https://blog.csdn.net/caoshangpa/article/details/51103402我们添加了一个三角形和一个四边形。也许你认为这很简单,但你已经迈出了一大步,要知道任何在OpenGL中绘制的模型都会被分解为这两种简单的图形。lesson1.h#ifndef LESSON1_H#define LESSON1_H#incl...原创 2018-05-10 17:30:41 · 7513 阅读 · 0 评论