上下收缩、折叠面板
效果:
上下收缩、折叠面板,类似QQ好友列表那种。原理就是在一个布局中,通过button来实现一个独立widget的visible/disable
实现:
1.分组按钮
#ifndef EXPANDPANEL_H
#define EXPANDPANEL_H#include <QWidget>class QLabel;
class ExpandPanel : public QWidget
{Q_OBJECT
public:ExpandPanel(QWidget* parent=nullptr);void setTitle(const QString& title);signals:void statuChanged(bool expand);protected:void mousePressEvent(QMouseEvent *event);private:QLabel* logo;QLabel* title;QLabel* icon;bool mExpand = true;
};#endif // EXPANDPANEL_H#include "expandpanel.h"
#include "parse/parsework.h"#include <QDebug>
#include <QLabel>
#include <QVariant>
#include <QHBoxLayout>
#include <QStyle>
ExpandPanel::ExpandPanel(QWidget *parent):QWidget(parent)
{ logo = new QLabel;logo->setObjectName("logo");title = new QLabel;title->setObjectName("title");icon = new QLabel;icon->setObjectName("icon");icon->setProperty("expand", true);QHBoxLayout* layout = new QHBoxLayout(this);layout->addWidget(logo);layout->addWidget(title);layout->addStretch(1);layout->addWidget(icon);layout->setContentsMargins(0,0,0,0);ParseWork::Instance().dynamicUpdateStyleSheet(this,":/qss/src/qss/expandpanel.qss");
}void ExpandPanel::setTitle(const QString &name)
{title->setText(name);
}void ExpandPanel::mousePressEvent(QMouseEvent *event)
{QWidget::mousePressEvent(event);mExpand = !mExpand;emit statuChanged(mExpand);icon->setProperty("expand", mExpand);ParseWork::Instance().dynamicUpdateStyleSheet(this,":/qss/src/qss/expandpanel.qss");
}
2.使用
在mainwindow中创建两部分,左边是折叠面板,右侧是一个qtabwidget(用不到则删掉)
void MainWindow::createFrame()
{mFuncPanel = new QWidget; mFuncVLayout = new QVBoxLayout;mFuncPanel->setMinimumWidth(220);mFuncPanel->setLayout(mFuncVLayout);mFuncVLayout->setSpacing(15);mFuncVLayout->setContentsMargins(0,0,0,0);mLogPanel = new QTabWidget;mLogPanel->setTabsClosable(true);mLogPanel->setElideMode(Qt::ElideLeft);QSplitter* spliter = new QSplitter;spliter->setOrientation(Qt::Horizontal);spliter->addWidget(mFuncPanel);spliter->addWidget(mLogPanel);spliter->setStretchFactor(1, 1);spliter->setChildrenCollapsible(false);//very importance, not to hide child duruing movingQHBoxLayout* layout = new QHBoxLayout(this);layout->addWidget(spliter);
}void MainWindow::initLocalFilePanel()
{mLocalFilePl = new ExpandPanel;mLocalFilePl->setTitle(tr("LocalFile"));LocalFile* file = new LocalFile;mFuncVLayout->addWidget(mLocalFilePl);mFuncVLayout->addWidget(file);mFuncVLayout->addStretch(1);connect(mLocalFilePl, &ExpandPanel::statuChanged, file, &LocalFile::setVisible);
}
相关文章:
上下收缩、折叠面板
效果: 上下收缩、折叠面板,类似QQ好友列表那种。原理就是在一个布局中,通过button来实现一个独立widget的visible/disable 实现: 1.分组按钮 #ifndef EXPANDPANEL_H #define EXPANDPANEL_H#include <QWidget>class…...

XC7A35T-2FGG484 嵌入式FPGA现场可编程门阵列 Xilinx
XC7A35T-2FGG484 是一款由Xilinx(赛灵思)制造的FPGA(现场可编程门阵列)芯片 以下是XC7A35T-2FGG484 的主要参数: 1. 系列:Artix-7 2. 逻辑单元数量:33280个 3. 工艺技术:28nm 4. …...

淘宝订单API接口:电商业务自动化的新选择
淘宝订单API接口在电商业务自动化中扮演了至关重要的角色。首先,通过API接口,商家可以自动化地查询、创建、修改和删除订单,极大地提高了订单处理效率,减少了人工操作,降低了错误率。其次,商家可以实时获取…...

识典百科词条创建技巧,教你如何轻松创建热门识典百科词条!
网络已经成为人们获取知识和信息的主要途径。在这样一个背景下,识典百科作为一个综合性的网络百科全书,在为读者们提供各种知识的同时,也给广大用户提供了一个创建、编辑和分享知识的平台。如何在识典百科上创建一个高质量的词条,…...

iOS 开发中上传 IPA 文件的方法(无需 Mac 电脑)
引言 在 iOS 开发中,将 IPA 文件上传到苹果开发者中心是一个重要的步骤。通常情况下,我们需要使用 Mac 电脑上的 Xcode 或 Application Loader 工具来完成这个任务。然而,如果你没有 Mac 电脑,也没有关系,本文将介绍一…...
2024-04-08 问AI: 介绍一下AI 大神 吴恩达
文心一言 吴恩达(Andrew Ng)是AI领域的一位重要人物,他的贡献和影响力在学术界、工业界以及在线教育领域都极为显著。 吴恩达出生于1976年,是一位华裔美国人,他在斯坦福大学担任计算机科学系和电子工程系的副教授&am…...
Leetcode面试经典150_Q12整数转罗马数字
题目: 罗马数字包含以下七种字符: I, V, X, L,C,D 和 M。 字符 数值 I 1 V 5 X 10 L 50 C 100 D 500 M …...
Docker-compose部署Alertmanager+Dingtalk+Prometheus+Grafana实现钉钉报警
部署监控 version: 3.7services: #dingtalkdingtalk:image: timonwong/prometheus-webhook-dingtalk:latestcontainer_name: dingtalkrestart: alwayscommand:- --config.file/etc/prometheus-webhook-dingtalk/config.ymlvolumes:- /data/monitor/dingtalk/config.yml:/etc/p…...
算法刷题记录 Day40
算法刷题记录 Day40 Date: 2024.04.06 kamma 56. 多重背包 #include<bits/stdc.h> using namespace std;int main(){int n, c;while(cin>>c>>n){vector<int> weights(n, 0);vector<int> values(n, 0);vector<int> knums(n, 0);for(int …...

Android JNI基础
目录 一、JNI简介1.1 什么是JNI1.2 用途1.3 优点 二、初探JNI2.1 新建cpp\cmake2.2 build.gradle配置2.3 java层配置2.4 cmake和c 三、API详解3.1 JNI API3.1.1 数据类型3.1.2 方法 3.2 CMake脚本 四、再探JNI 一、JNI简介 1.1 什么是JNI JNI(Java Native Interfa…...
裙边挡边带是什么
裙边挡边带:了解其功能与应用 在日常生活和工业生产中,我们经常会遇到各种形状和功能的带子。其中,裙边挡边带是一种特殊类型的带子,它具有独特的结构和功能,被广泛应用于各种场合。本文将介绍裙边挡边带的基本概念、…...

chabot项目介绍
项目介绍 整体的目录如下所示: 上述的项目结构中出了model是必须的外,其他的都可以根据训练的代码参数传入进行调整,有些不需要一定存在data train.pkl:对原始训练语料进行tokenize之后的文件,存储一个list对象,list的每条数据表…...

ChromeOS 中自启动 Fcitx5 和托盘 stalonetray
ChromeOS 更新的飞快,旧文章的方法也老是不好用,找遍了也没找到很好的可以开机自启动 Linux VM 和输入法、托盘的方法。 研究了一下(不,是很久),终于找到个丑陋的实现。 方法基于 ChromeOS 123.0.6312.94…...

画图理解JVM相关内容
文章目录 1. JVM视角下,内存划分2. 类内存分布硬核详解1. 获取堆内存参数2. 扫描堆内存,定位实例3. 查看实例所在地址的数据4. 找到实例所指向的类信息的地址5. 查看class信息6. 结论 3. Java的对象创建流程4. 垃圾判别算法4.1 引用计数法4.2 可达性分析…...

Scikit-Learn K均值聚类
Scikit-Learn K均值聚类 1、K均值聚类1.1、K均值聚类及原理1.2、K均值聚类的优缺点1.3、聚类与分类的区别2、Scikit-Learn K均值聚类2.1、Scikit-Learn K均值聚类API2.2、K均值聚类初体验(寻找最佳K)2.3、K均值聚类案例1、K均值聚类 K-均值(K-Means)是一种聚类算法,属于无…...

蓝桥杯 - 受伤的皇后
解题思路: 递归 回溯(n皇后问题的变种) 在 N 皇后问题的解决方案中,我们是从棋盘的顶部向底部逐行放置皇后的,这意味着在任何给定时间,所有未来的行(即当前行之下的所有行)都还没…...

AcWing---乌龟棋---线性dp
312. 乌龟棋 - AcWing题库 思路: 原来没有碰到过类似的题: dp数组为思维:dp[i][j][k][r],分别表示用了i个第一类型卡片,j个第二类型卡片...所到的格子数的最大分数,为啥不用记录乌龟到了哪里呢࿱…...

python代码使用过程中使用快捷键注释时报错
1.代码 2.代码报错 3.代码注释后的结果 4. 原因...

go之web框架gin
介绍 Gin 是一个用 Go (Golang) 编写的 Web 框架。 它具有类似 martini 的 API,性能要好得多,多亏了 httprouter,速度提高了 40 倍。 如果您需要性能和良好的生产力,您一定会喜欢 Gin。 安装 go get -u github.com/gin-gonic/g…...

SpringBoot 定时任务实践、定时任务按指定时间执行
Q1. springboot怎样创建定时任务? 很显然,人人都知道,Scheduled(cron ".....") Q2. 如上所示创建了定时任务却未能执行是为什么? 如果你的cron确定没写错的话 cron表达式是否合法,可参考此处,…...
React Native 开发环境搭建(全平台详解)
React Native 开发环境搭建(全平台详解) 在开始使用 React Native 开发移动应用之前,正确设置开发环境是至关重要的一步。本文将为你提供一份全面的指南,涵盖 macOS 和 Windows 平台的配置步骤,如何在 Android 和 iOS…...

SCAU期末笔记 - 数据分析与数据挖掘题库解析
这门怎么题库答案不全啊日 来简单学一下子来 一、选择题(可多选) 将原始数据进行集成、变换、维度规约、数值规约是在以下哪个步骤的任务?(C) A. 频繁模式挖掘 B.分类和预测 C.数据预处理 D.数据流挖掘 A. 频繁模式挖掘:专注于发现数据中…...

深入理解JavaScript设计模式之单例模式
目录 什么是单例模式为什么需要单例模式常见应用场景包括 单例模式实现透明单例模式实现不透明单例模式用代理实现单例模式javaScript中的单例模式使用命名空间使用闭包封装私有变量 惰性单例通用的惰性单例 结语 什么是单例模式 单例模式(Singleton Pattern&#…...
C++中string流知识详解和示例
一、概览与类体系 C 提供三种基于内存字符串的流,定义在 <sstream> 中: std::istringstream:输入流,从已有字符串中读取并解析。std::ostringstream:输出流,向内部缓冲区写入内容,最终取…...
unix/linux,sudo,其发展历程详细时间线、由来、历史背景
sudo 的诞生和演化,本身就是一部 Unix/Linux 系统管理哲学变迁的微缩史。来,让我们拨开时间的迷雾,一同探寻 sudo 那波澜壮阔(也颇为实用主义)的发展历程。 历史背景:su的时代与困境 ( 20 世纪 70 年代 - 80 年代初) 在 sudo 出现之前,Unix 系统管理员和需要特权操作的…...

【Java_EE】Spring MVC
目录 Spring Web MVC 编辑注解 RestController RequestMapping RequestParam RequestParam RequestBody PathVariable RequestPart 参数传递 注意事项 编辑参数重命名 RequestParam 编辑编辑传递集合 RequestParam 传递JSON数据 编辑RequestBody …...
虚拟电厂发展三大趋势:市场化、技术主导、车网互联
市场化:从政策驱动到多元盈利 政策全面赋能 2025年4月,国家发改委、能源局发布《关于加快推进虚拟电厂发展的指导意见》,首次明确虚拟电厂为“独立市场主体”,提出硬性目标:2027年全国调节能力≥2000万千瓦࿰…...
Redis:现代应用开发的高效内存数据存储利器
一、Redis的起源与发展 Redis最初由意大利程序员Salvatore Sanfilippo在2009年开发,其初衷是为了满足他自己的一个项目需求,即需要一个高性能的键值存储系统来解决传统数据库在高并发场景下的性能瓶颈。随着项目的开源,Redis凭借其简单易用、…...
LLaMA-Factory 微调 Qwen2-VL 进行人脸情感识别(二)
在上一篇文章中,我们详细介绍了如何使用LLaMA-Factory框架对Qwen2-VL大模型进行微调,以实现人脸情感识别的功能。本篇文章将聚焦于微调完成后,如何调用这个模型进行人脸情感识别的具体代码实现,包括详细的步骤和注释。 模型调用步骤 环境准备:确保安装了必要的Python库。…...

C++实现分布式网络通信框架RPC(2)——rpc发布端
有了上篇文章的项目的基本知识的了解,现在我们就开始构建项目。 目录 一、构建工程目录 二、本地服务发布成RPC服务 2.1理解RPC发布 2.2实现 三、Mprpc框架的基础类设计 3.1框架的初始化类 MprpcApplication 代码实现 3.2读取配置文件类 MprpcConfig 代码实现…...