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


源码下载

相关推荐
至为芯36 分钟前
IP6537至为芯支持双C口快充输出的45W降压SOC芯片
c语言·开发语言
hele_two40 分钟前
快速幂算法
c++·python·算法
OopspoO1 小时前
C++杂记——Name Mangling
c++
yuanmenghao1 小时前
车载Linux 系统问题定位方法论与实战系列 - 车载 Linux 平台问题定位规范
linux·运维·服务器·网络·c++
小羊羊Python1 小时前
SoundMaze v1.0.1正式发布!
开发语言·c++
浩瀚地学1 小时前
【Java】JDK8的一些新特性
java·开发语言·经验分享·笔记·学习
l1t1 小时前
利用DeepSeek将python DLX求解数独程序格式化并改成3.x版本
开发语言·python·算法·数独
yugi9878383 小时前
基于遗传算法优化主动悬架模糊控制的Matlab实现
开发语言·matlab
moxiaoran57533 小时前
Go语言的错误处理
开发语言·后端·golang
yugi9878384 小时前
MATLAB的多层感知器(MLP)与极限学习机(ELM)实现
开发语言·matlab