Qt-UI界面分区域显示不同内容

一、需求描述

在界面的不同区域显示不同模块内容。比如:UI界面左侧需要显示功能,右侧显示拓扑、浏览器页面等。

二、目标样式

在这里插入图片描述

三、解决方案

由最顶层QWidget布局转为QMainWindow布局。利用QMainWindow中的QDockWidget控件来实现界面不同区域显示不同模块内容。

四、实现代码

void MainWindow::webWidgetDisplay()
{
	this->takeCentralWidget();//去掉中间控件
	QDockWidget *dockLeft = new QDockWidget();
	dockLeft->setFeatures(QDockWidget::NoDockWidgetFeatures);// 设置为不可关闭、移动、浮动
	dockLeft->setWidget(ui->tabWidget);
	addDockWidget(Qt::LeftDockWidgetArea, dockLeft);

	//右上放置浏览器子窗口
	QDockWidget *dock = new QDockWidget();
	dock->setFeatures(QDockWidget::NoDockWidgetFeatures);
	dock->setAllowedAreas(Qt::RightDockWidgetArea | Qt::TopDockWidgetArea | Qt::BottomDockWidgetArea);
	dock->setMinimumSize(500,400);
	dock = new QDockWidget();
	dock->setFeatures(QDockWidget::DockWidgetMovable| QDockWidget::DockWidgetFloatable); 
	
	//指定停靠窗体的样式,此处为可移动
	dock->setAllowedAreas(Qt::RightDockWidgetArea | Qt::TopDockWidgetArea | Qt::BottomDockWidgetArea);
	QTextEdit *text1 = new QTextEdit();
	text1->setText(tr("窗口2"));
	dock->setWidget(text1);
	addDockWidget(Qt::RightDockWidgetArea,dock);
	setDockNestingEnabled(false);//禁止Dock嵌套

}
  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值