《QT从基础到进阶·三十六》QWidget实现收缩栏的效果

功能:

1、可以在收缩栏插件中添加界面

2、可以把界面展开或收缩

3、可以用鼠标拖动界面改变界面的排放顺序

源码放在最下方

1、可以在收缩栏插件中添加界面

cpp 复制代码
virtual void addWidget(QWidget* widget, const QString& label, const QIcon& icon = QIcon());

参数1:插入的界面指针

参数2:插入的界面标题

参数3:插入的界面图标

demo:

在收缩栏插件中添加两个界面

cpp 复制代码
//创建收缩栏对象,这里是用插件形式读取CollpasePagePlugin.dll拿到QObject指针在强转为CollpasePagePlugin对象
//如果不清楚插件用法可以直接new一个CollpasePagePlugin对象
CollpasePagePlugin* collpasePagePlugin = PluginCore::getinstance()->GetPlugin<CollpasePagePlugin>("CollpasePagePlugin", "MTFTool");
if (collpasePagePlugin)
{
	
	collpasePagePlugin->GetWidget()->setParent(ui.groupBox);  //设置父窗体
	collpasePagePlugin->GetWidget()->setMouseTracking(true);  //设置鼠标追踪
	collpasePagePlugin->GetWidget()->parentWidget()->setMouseTracking(true);  //设置父窗体鼠标追踪
	collpasePagePlugin->SetLayout((QVBoxLayout*)ui.groupBox->layout(), -1);  //对收缩栏插件设置布局

	//创建一个widget
	m_MTFSetting = new MTFSetting(this);
	//把widget添加到收缩栏
	collpasePagePlugin->addWidget(m_MTFSetting, "MTFSetting", QIcon(":/Gen2WGMTFTester/images/MTF/MTFsetting.png"));
	
	//创建另一个widget
	m_ledWidget = new LEDControl(this);
	//把widget添加到收缩栏
	collpasePagePlugin->addWidget(ledPlugin->GetWidget(), "LEDControl", QIcon(":/Gen2WGMTFTester/images/MTF/LED.jpg"));
	
	//设置在程序运行后两个界面默认是收缩状态
	collpasePagePlugin->setItemExpand(0, false);
	collpasePagePlugin->setItemExpand(1, false);
}

2、界面展开或收缩

3、鼠标拖动界面移动和改变顺序


源码下载

相关推荐
gopyer15 小时前
180课时吃透Go语言游戏后端开发6:Go语言的循环语句
开发语言·游戏·golang·循环语句
ajassi200017 小时前
开源 C++ QT QML 开发(二)工程结构
linux·qt·qml
charlie11451419118 小时前
精读C++20设计模式:行为型设计模式:中介者模式
c++·学习·设计模式·c++20·中介者模式
楼田莉子18 小时前
Qt开发学习——QtCreator深度介绍/程序运行/开发规范/对象树
开发语言·前端·c++·qt·学习
oioihoii18 小时前
超越 std::unique_ptr:探讨自定义删除器的真正力量
c++
Gohldg18 小时前
C++算法·贪心例题讲解
c++·数学·算法·贪心算法
韩立学长18 小时前
【开题答辩实录分享】以《基于python的奶茶店分布数据分析与可视化》为例进行答辩实录分享
开发语言·python·数据分析
天若有情67318 小时前
C++空值初始化利器:empty.h使用指南
开发语言·c++
远远远远子19 小时前
类与对象 --1
开发语言·c++·算法
无敌最俊朗@19 小时前
C/C++ 关键关键字面试指南 (const, static, volatile, explicit)
c语言·开发语言·c++·面试