《QT实用小工具·十四》面板容器控件和图形字体示例

1、概述
源码放在文章末尾

面板容器控件包含如下功能:

    1. 支持所有widget子类对象,自动产生滚动条。
    1. 支持自动拉伸自动填充。
    1. 提供接口获取容器内的所有对象的指针。
    1. 可设置是否自动拉伸宽度高度。
    1. 可设置设备面板之间的间距和边距。

超级图形字体类包含如下功能:

    1. 可传入多种图形字体文件,一个类通用所有图形字体。
    1. 默认已经内置了阿里巴巴图形字体FontAliBaBa、国际知名图形字体FontAwesome、天气图形字体FontWeather。
    1. 可设置 QLabel、QAbstractButton 文本为图形字体。
    1. 可设置图形字体作为 QAbstractButton 按钮图标。
    1. 内置万能的方法 getPixmap 将图形字体值转换为图片。
    1. 无论是设置文本、图标、图片等都可以设置图标的大小、尺寸、颜色等参数。
    1. 内置超级导航栏样式设置,将图形字体作为图标设置到按钮。
    1. 支持各种颜色设置比如正常颜色、悬停颜色、按下颜色、选中颜色。
    1. 可设置导航的位置为 left、right、top、bottom 四种。
    1. 可设置导航加深边框颜色和粗细大小。
    1. 导航面板的各种切换效果比如鼠标悬停、按下、选中等都自动处理掉样式设置。
    1. 全局静态方法,接口丰富,使用极其简单方便。

在这里插入图片描述

项目部分代码如下:

#ifndef PANELWIDGET_H
#define PANELWIDGET_H/*** 面板容器控件* 1. 支持所有widget子类对象,自动产生滚动条。* 2. 支持自动拉伸自动填充。* 3. 提供接口获取容器内的所有对象的指针。* 4. 可设置是否自动拉伸宽度高度。* 5. 可设置设备面板之间的间距和边距。*/#include <QWidget>class QScrollArea;
class QFrame;
class QVBoxLayout;
class QGridLayout;
class QSpacerItem;#ifdef quc
class Q_DECL_EXPORT PanelWidget : public QWidget
#else
class PanelWidget : public QWidget
#endif{Q_OBJECTQ_PROPERTY(int margin READ getMargin WRITE setMargin)Q_PROPERTY(int space READ getSpace WRITE setSpace)Q_PROPERTY(bool autoWidth READ getAutoWidth WRITE setAutoWidth)Q_PROPERTY(bool autoHeight READ getAutoHeight WRITE setAutoHeight)Q_PROPERTY(int columnCount READ getColumnCount WRITE setColumnCount)public:explicit PanelWidget(QWidget *parent = 0);protected:void resizeEvent(QResizeEvent *);private:QScrollArea *scrollArea;    //滚动区域QWidget *scrollAreaContents;//滚动区域载体QFrame *frame;              //放置设备的框架,自动变宽变高QVBoxLayout *verticalLayout;//设备面板总布局QGridLayout *gridLayout;    //设备表格布局QSpacerItem *hSpacer;       //横向弹簧QSpacerItem *vSpacer;       //垂直弹簧int margin;                 //边距int space;                  //设备之间的间隔bool autoWidth;             //宽度自动拉伸bool autoHeight;            //高度自动拉伸int columnCount;            //面板列数QList<QWidget *> widgets;   //设备面板对象集合public://默认尺寸和最小尺寸QSize sizeHint() const;QSize minimumSizeHint() const;//设置边距void setMargin(int left, int top, int right, int bottom);//获取和设置边距int getMargin() const;void setMargin(int margin);//获取和设置间距int getSpace() const;void setSpace(int space);//获取和设置自动填充宽度bool getAutoWidth() const;void setAutoWidth(bool autoWidth);//获取和设置自自动填充高度bool getAutoHeight() const;void setAutoHeight(bool autoHeight);//获取和设置列数int getColumnCount() const;void setColumnCount(int columnCount);//获取和设置窗体集合QList<QWidget *> getWidgets() const;void setWidgets(QList<QWidget *> widgets);//载入窗体集合void loadWidgets();//指定位置插入新窗体void insertWidget(int index, QWidget *widget);//移除指定的窗体void removeWidget(QWidget *widget);//清空窗体void clearWidgets();
};#endif // PANELWIDGET_H

源码下载

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/794048.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

无库存,无货源,怎么做视频号小店?

大家好&#xff0c;我是电商糖果 有朋友跟糖果说&#xff0c;这视频号小店非常火&#xff0c;自己想趁着这次的风口开店赚钱。 自己无库存&#xff0c;也无货源&#xff0c;能开店卖货不&#xff1f; 糖果告诉他&#xff0c;能卖货&#xff0c;而且还可以让他不到一个月时间…

vivado 系统监控器

系统监控器 (SYSMON) 模数转换器 (ADC) 用于测量硬件器件上的裸片温度和电压。 SYSMON 可通过片上温度和供电传 感器来监控物理环境。 ADC 可为各种应用提供高精度模拟接口。 请参阅下文 &#xff0c; 以获取有关特定器件架构的更多信息 &#xff1a; • 《 UltraScale …

c# wpf Template ContentTemplate

1.概要 1.1 定义内容的外观 2.2 要点分析 2.代码 <Window x:Class"WpfApp2.Window1"xmlns"http://schemas.microsoft.com/winfx/2006/xaml/presentation"xmlns:x"http://schemas.microsoft.com/winfx/2006/xaml"xmlns:d"http://schem…

LangChain学习笔记—RAG(检索增强生成)

LangChain LangChain是一个软件开发框架&#xff0c;可以更轻松地使用大型语言模型&#xff08;LLM&#xff09;创建应用程序。它是一个具有 Python 和 JavaScript 代码库的开源工具。LangChain 允许开发人员将 GPT-4 等 LLM 与外部数据相结合&#xff0c;为聊天机器人、代码理…

C++之函数提高(HM)

目录 1.函数默认参数&#xff08;缺省参数&#xff09; 2.占位参数 3.函数重载 4.类和对象--封装 &#xff08;1&#xff09;圆类&#xff1a; &#xff08;2&#xff09;访问权限 &#xff08;3&#xff09;struct&&class &#xff08;4&#xff09;立方体类的…

第1讲——预备知识

一、视觉SLAM十四讲在讲些啥 SLAM&#xff1a;Simultaneous Localization and Mapping 翻译&#xff1a;同时定位与地图构建 搭载特定传感器的主体&#xff0c;在没有环境先验信息的情况下&#xff0c;于运动过程中建立环境的模型&#xff0c;同时估计自己的运动。 当特定传感…

WWDC24定档6月 | 崩坏3将推Mac系统版 苹果AI启航 visionOS 2.0将系数登场WWDC24

这几天又有一件苹果用户圈大事发生了&#xff01;WWDC24正式定档&#xff0c;将在6月10日-14日召开&#xff0c;届时一众软件系统&#xff0c;包括iOS18&#xff0c;iPadOS&#xff0c;WatchOS&#xff0c;VisionOS等等&#xff0c;都将迎来更新。另外就是手游崩坏3官宣&#x…

有效感受野可视化学习

有效感受野可视化 过程记录创建环境准备数据、脚本脚本测试 其他参考尝试运行 过程记录 创建环境 conda create -n ERF python3.8 -y conda activate ERF pip3 install empy rospkg pyyaml catkin_pkg conda install pytorch2.1.0 torchvision0.16.0 torchaudio2.1.0 pytorch…

基于k8s的高性能综合web服务器搭建

目录 基于k8s的高性能综合web服务器搭建 项目描述&#xff1a; 项目规划图&#xff1a; 项目环境&#xff1a; k8s&#xff0c; docker centos7.9 nginx prometheus grafana flask ansible Jenkins等 1.规划设计整个集群的架构&#xff0c;k8s单master的集群环境&…

【R】Error in library(foreach) : 不存在叫‘foreach’这个名字的程辑包

Error in library(foreach) : 不存在叫‘foreach’这个名字的程辑包 此外: Warning message: package ‘parallel’ is a base package, and should not be updated 解决方法 缺少名为 foreach 的包&#xff0c;使用install.packages("foreach")将名为foreach 的包…

Qt事件学习案例

视频链接 https://www.bilibili.com/video/BV18B4y1K7Cs?p7&spm_id_frompageDriver&vd_sourcefa4ef8f26ae084f9b5f70a5f87e9e41bQt5跟着视频做即可&#xff0c;Qt6部分代码需要改动,改动的地方注释有写 素材 百度云 链接&#xff1a;https://pan.baidu.com/s/158j…

Mybatis——一对一映射

一对一映射 预置条件 在某网络购物系统中&#xff0c;一个用户只能拥有一个购物车&#xff0c;用户与购物车的关系可以设计为一对一关系 数据库表结构&#xff08;唯一外键关联&#xff09; 创建两个实体类和映射接口 package org.example.demo;import lombok.Data;import …

STM32H5 读取温度传感器校准值时进 HardFault 的原因分析

1.前言 有客户反馈&#xff0c;在使用 STM32H5 读取温度传感器校准值地址时&#xff0c;会进入 HardFault&#xff0c;而在其他系列芯片中读取这个参数时并没有此现象。在 NUCLEO-H563ZI 开发板上去复现此问题&#xff0c;发现只有开启 ICACHE 后才会复现&#xff0c;初步验证…

【旅行商问题TSP】基于大邻域搜索算法LNS

课题名称&#xff1a;大规模邻域搜索算法LNS求解TSP问题 版本时间&#xff1a;2024-04-01 程序运行&#xff1a;直接运行LNS_TSP.m 文件即可 代码获取方式&#xff1a; QQ&#xff1a;491052175 VX&#xff1a;Matlab_Lover 模型介绍&#xff1a; 第一步&#xff1a;设定…

如何对抓取的文本进行分词、词频统计、词云可视化和情感分析

目录 一、引言 二、文本分词 三、词频统计 四、词云可视化 五、情感分析 六、总结 一、引言 在大数据时代&#xff0c;文本数据的处理和分析显得尤为重要。对于爬虫抓取的大量文本数据&#xff0c;如何进行高效、准确的处理和分析&#xff0c;是每一个数据分析师和开发…

9Proxy,跨境电商一站式解决方案

文章目录 跨境电商什么是跨境电商跨境电商的机遇跨境电商技术支撑 海外代理IP什么是海外代理IP海外代理IP的作用如何选择海外代理IP 9Proxy9Proxy的优势9Proxy的解决方案价格汇总搜索引擎优化市场调查多重核算数据抓取广告技术 价格上手体验注册登录下载安装数据采集 总结福利 …

【Unity每日一记】如何从0到1将特效图集制作成一个特效

&#x1f468;‍&#x1f4bb;个人主页&#xff1a;元宇宙-秩沅 &#x1f468;‍&#x1f4bb; hallo 欢迎 点赞&#x1f44d; 收藏⭐ 留言&#x1f4dd; 加关注✅! &#x1f468;‍&#x1f4bb; 本文由 秩沅 原创 &#x1f468;‍&#x1f4bb; 收录于专栏&#xff1a;Uni…

Java毕业设计 基于SSM jsp商城系统 美妆系统

Java毕业设计 基于SSM jsp商城系统 美妆系统 SSM jsp 商城系统 美妆系统 功能介绍 首页 分类展示商品 搜索商品 登录 注册 邮箱激活 购物车 结算 支付 我的订单 个人信息设置 后台管理 登录 商品管理 添加修改下架商品 商品类型管理 添加修改删除分类 订单管理 确认发货 取消…

Vue使用高德地图(快速上手)

1.在高德平台注册账号 2.我的 > 管理管理中添加Key 3.安装依赖 npm i amap/amap-jsapi-loader --save 或 yarn add amap/amap-jsapi-loader --save 4.导入 AMapLoade import AMapLoader from amap/amap-jsapi-loader; 5.直接上代码&#xff0c;做好了注释&#xff08;初…

Lafida多目数据集实测

Lafida 数据集 paper&#xff1a;J. Imaging | Free Full-Text | LaFiDa—A Laserscanner Multi-Fisheye Camera Dataset 官网数据&#xff1a;https://www.ipf.kit.edu/english/projekt_cv_szenen.php 官网&#xff1a;KIT-IPF-Software and Datasets - LaFiDa 标定数据下载&…