Qt FlowLayout升级版
Qt FlowLayout升级版
文章目录
- Qt FlowLayout升级版
- 简述
- 效果图
- 核心代码
- QQ群
- 结尾
简述
最近因为工作需要,在flowlayout流布局上改进了下。专业词语不知道怎么称呼,暂且称为紧凑型布局吧。看看效果图
效果图
核心代码
int itemSize = itemList.size();for (int i = 0; i < itemSize; i++) {QWidget *wid = itemList[i]->widget();int spaceX = horizontalSpacing();if (spaceX == -1)spaceX = wid->style()->layoutSpacing(QSizePolicy::PushButton, QSizePolicy::PushButton, Qt::Horizontal);int spaceY = verticalSpacing();if (spaceY == -1)spaceY = wid->style()->layoutSpacing(QSizePolicy::PushButton, QSizePolicy::PushButton, Qt::Vertical);
//! [10]
//! [11]
//!if(itemList[i]->sizeHint().height() == 0) continue;int nextX = x + itemList[i]->sizeHint().width() + spaceX;int nextY = y;if(x > effectiveRect.x()){nextX = x;nextY = y + itemList[i]->sizeHint().height() + spaceY;if(nextY - spaceY >= preY + lineHeight && lineHeight > 0 && lineWidth > 0){x = x + lineWidth + spaceX;y = preY;nextX = x;nextY = y + itemList[i]->sizeHint().height() + spaceY;lineWidth = 0;}lineWidth = qMax(lineWidth, itemList[i]->sizeHint().width());}if (nextX + itemList[i]->sizeHint().width() > effectiveRect.right() && lineHeight > 0) {x = effectiveRect.x();y = preY + lineHeight + spaceY;preY = y;nextX = x + itemList[i]->sizeHint().width() + spaceX;nextY = y;lineHeight = 0;lineWidth = 0;}if (!testOnly){itemList[i]->setGeometry(QRect(QPoint(x, y), itemList[i]->sizeHint()));}lineHeight = qMax(lineHeight, itemList[i]->sizeHint().height());x = nextX;y = nextY;}
QQ群
Qt交流大会 853086607 (收费群,用于后期升级群费用)
结尾
不定期上传新作品,解答群中作品相关问题。相关外,能解答则解答。欢迎大家一起探索Qt世界!相关工程,可以联系博主雨田哥:3246214072
Qt FlowLayout升级版相关推荐
- Qt FlowLayout布局
01 开发过程中用到了动态加载控件的操作 02 问题是每个控件的要显示的文本信息长度不同,造成控件宽度不同 03 搜索一番,发现了好用的FlowLayout布局 04 简单说,他可以将控件一个挨一个排 ...
- Qt之流式布局(FlowLayout)
简述 有时候我们希望窗口内的布局随着窗口大小的改变而自动调整,这就是流式布局(FlowLayout)的作用. 流式布局会根据窗口的尺寸来自动调整控件布局,控件的排布会随着窗口宽度的变化而变化. 使用 ...
- qt在window实现调取本机摄像头或者外设摄像头二维码识别升级版
之前发过一个帖子,后来发现有很多bug,不得已又研究了几天, 升级了这一版本,比之前好多了,bug也完美解决,但只是在我应用上解决,相对于大多数人来说还是未知的,看你们个人需求,希望能帮助到你们.话不 ...
- 微信打飞机升级版(Qt实现)
今天分享一个我用Qt改写的微信打飞机游戏,程序重在设计过程,运用了(抽象)工厂的模式产生不同的对象(子弹,敌军,炸弹...),逻辑处理相对简单,尚未解决的问题是怎么使用Qt实现各种声音的混音效果,这里 ...
- Qt分析:Qt中的两种定时器
QTimer类的定时器 QTimer类定时器是QObject类定时器的扩展版或者说升级版,因为它可以提供更多的功能.比如说,它支持单次触发和多次触发. 使用QTimer类定时器的步骤: (1)创建一个 ...
- Qt 中容器类型的控件
转载:https://subingwen.cn/qt/qt-containers/ 1.QWidget 这个类是所有窗口类的父类,可以作为独立窗口使用,也可以内嵌到其它窗口中使用. Qt 中的所有控件 ...
- 快速实现B站(B ili b ili)手机缓存m4s文件转mp4(批量升级版)
经过几天奋战,终于应朋友要求,开发出了升级版的B站缓存m4s转mp4软件,这次功能更强大,操作更便捷.适合很多个缓存一起转,不用一个一个点了. 先看一下界面: 只要对着文件双击,就可以自动转换,而且是 ...
- Qt学习之界面UI编程应用
Qt作为c++的GUI编程框架,在Qt4时代,一直是传统的基于QtWidget的C++编程,而到了Qt5,为了适用当前的移动应用开发浪潮,Qt提供了,另一套界面框架QtQuick,它是基于QML语言( ...
- Qt - 换肤功能实现
文章目录 前言 Qt内置风格 QPalette QSS QSS样式 一般样式 选择器 子控件 伪状态 属性 使用 分离QSS 推荐工具 Qsseditor QssStylesheetEditor QS ...
- Qt QTableWidget表格控件的用法(非常详细)
Qt QTableWidget表格控件的用法(非常详细) QTableWidget 是 Qt 提供的一种表格控件(如图 1 所示),类似于我们经常使用的 Excel 表格,可以将数据以表格的方式展示给 ...
最新文章
- VC使用ActiveX控件常见问题
- leetcode算法题--斐波那契数列
- cxf 发布 一个简单的 webservice
- docker与kuberentes基本概念与操作学习
- 【绝对有用】Syntax error on token “throws“, @ expected after this token
- SQL触发器实例讲解
- java 多线程的同步问题_java多线程解决同步问题的几种方式,原理和代码
- 毕业生该不该做软件开发这一行?
- 利用c语言面向对象编程,用C语言程序实现面向对象编程
- svg实现loading效果
- 【2016.4.6】结对编程 第二章 基础设计
- 配电网重构知识及matlab实现
- 文档转换工具 —— 你还在为wps的word转pdf上限五页而苦恼吗?
- webstorm+vue组件开发准备
- Python数据分析-绘图-2-Seaborn进阶绘图-4-分类图
- 展讯sprd_battery.c 充电驱动
- Python实验、函数和代码复用
- 2019年小程序发展优势
- python入侵手机_Python-Iocextract:高级入侵威胁标识符IoC提取工具
- 玩转华为数据中心交换机系列 | 配置基于子网划分VLAN示例