《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、鼠标拖动界面移动和改变顺序


源码下载

相关推荐
workflower4 小时前
时序数据获取事件
开发语言·人工智能·python·深度学习·机器学习·结对编程
CoderYanger5 小时前
C.滑动窗口-求子数组个数-越长越合法——2799. 统计完全子数组的数目
java·c语言·开发语言·数据结构·算法·leetcode·职场和发展
C++业余爱好者5 小时前
Java 提供了8种基本数据类型及封装类型介绍
java·开发语言·python
林杜雨都5 小时前
Action和Func
开发语言·c#
皮卡龙5 小时前
Java常用的JSON
java·开发语言·spring boot·json
火山灿火山5 小时前
Qt常用控件(三)
开发语言·qt
利刃大大6 小时前
【JavaSE】十三、枚举类Enum && Lambda表达式 && 列表排序常见写法
java·开发语言·枚举·lambda·排序
float_六七6 小时前
Java反射:万能遥控器拆解编程
java·开发语言
han_hanker6 小时前
java 异常类——详解
java·开发语言
源码获取_wx:Fegn08956 小时前
基于springboot + vue健身房管理系统
java·开发语言·前端·vue.js·spring boot·后端·spring