《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,一经查实,立即删除!

相关文章

嵌入式软件架构演进:轮询系统、前后台系统、RTOS 架构特点和选择

嵌入式开发主要包括单片机(MCU)开发和以 ARM 为代表的嵌入式 Linux 开发。本文主要讲解单片机开发中嵌入式软件架构的演进,包括从最初的简单轮询式架构,到前后台系统,再到如今复杂多样的实时操作系统(RTOS)。对比各种嵌入式软件架构的特点和差异,并讨论学习 RTOS 的必要…

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

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

vivado 系统监控器

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

速通汇编(四)汇编andor、shl、shr、inc、dec、xchg、neg指令

一&#xff0c; and&#xff08;与操作&#xff09; 按位与操作符&#xff0c;将两个操作数的对应位进行与操作。 and ax, bx ; 将寄存器 AX 和 BX 中的值进行按位与操作&#xff0c;并将结果存储回寄存器 AX二&#xff0c;or&#xff08;或操作&#xff09; 按位或操作符&…

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…

电子技术学习笔记

一、半导体器件主要参数及应用 主要参数&#xff1a; 电压&#xff08;Voltage&#xff09;&#xff1a;指器件能够承受或工作的最大电压值&#xff0c;通常以伏特&#xff08;V&#xff09;为单位。 电流&#xff08;Current&#xff09;&#xff1a;指器件能够承受或工作的…

自去岁遭裁,迄今已憩半载有余……

自去岁遭裁&#xff0c;迄今已憩半载有余。初时&#xff0c;每思及空窗期之长&#xff0c;心中难免涌起自责之意&#xff0c;深恐日后求职之路坎坷。然深思熟虑后&#xff0c;方觉人生岂能无休憩之时&#xff1f;偶尔休憩&#xff0c;亦属常理&#xff0c;何必过于自责乎&#…

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;立方体类的…

最大质因数

描述 给出 N 个数字&#xff0c;试求质因数最大的数字。 输入描述 第一行&#xff0c;一个整数 N &#xff0c;表示数字个数。接下来 N 行&#xff0c;每行一个整数 Ai&#xff0c;表示给出的数字。 输出描述 一个整数&#xff0c;表示质因数最大的数字。 N≤5000,Ai≤20…

第1讲——预备知识

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

MBTI测试指南:职场新人必读的性格分析文章!

MBTI简介 迈尔斯-布里格斯类型指标&#xff08;Myers–Briggs Type Indicator&#xff0c;MBTI&#xff09;是由美国作家伊莎贝尔布里格斯迈尔斯和她的母亲凯瑟琳库克布里格斯共同制定的一种人格类型理论模型。 该指标以瑞士心理学家卡尔荣格划分的8种心理类型为基础&#xff…

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…

【干货集】C# XmlHelper帮助类操作Xml文档的通用方法汇总

前言 该篇文章主要总结的是自己平时工作中使用频率比较高的Xml文档操作的一些常用方法和收集网上写的比较好的一些通用Xml文档操作的方法&#xff08;主要包括Xml序列化和反序列化&#xff0c;Xml文件读取&#xff0c;Xml文档节点内容增删改的一些通过方法&#xff09;。当然可…

基于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;初步验证…