首页 > 其他 > 详细

【Qt学习笔记】9.容器窗口

时间:2016-12-09 20:10:32      阅读:311      评论:0      收藏:0      [点我收藏+]

容器(Container)

Qt里提供多种容器窗口:

1、选项卡窗口 QTabWidget

2、堆叠窗口  QStackedWidget

3、工具窗口  QToolBox 


一、选项卡窗口

容纳多个子窗口,每个子窗口显示一个标签(选项卡)。当标签被点击时,此窗口置于最前。

实现方式:

1、使用Qt Designer

2、手动添加 Widget

技术分享


二、堆叠窗口

容纳多个Widget,每个Wdiget称为一页

没有标签,由其他窗口控制

通常可以做向导程序


显示第几页: setCurrectIndex();



小练习:做一个这样的界面:

技术分享

Test9_2a_12_9::Test9_2a_12_9(QWidget *parent)
	: QMainWindow(parent)
{
	ui.setupUi(this);
	assert(
		connect(
			ui.btnPage1,
			SIGNAL(clicked()),
			this,
			SLOT(OnBtnPage1())
			)
		);
	assert(
		connect(
			ui.btnPage2,
			SIGNAL(clicked()),
			this,
			SLOT(OnBtnPage2())
			)
		);
	assert(
		connect(
			ui.btnPage3,
			SIGNAL(clicked()),
			this,
			SLOT(OnBtnPage3())
			)
		);
}

int Test9_2a_12_9::OnBtnPage1()
{
	ui.stackedWidget->setCurrentIndex(0);
	return 0;
}

int Test9_2a_12_9::OnBtnPage2()
{
	ui.stackedWidget->setCurrentIndex(1);
	return 0;
}

int Test9_2a_12_9::OnBtnPage3()
{
	ui.stackedWidget->setCurrentIndex(2);
	return 0;
}


三、工具窗口

容纳多个Widget,每个Wdiget称为一页

小练习:

做如下的界面

技术分享

技术分享

技术分享


实现代码:

Test9_3a_12_9::Test9_3a_12_9(QWidget *parent)
	: QMainWindow(parent)
{
	ui.setupUi(this);
	assert(
		connect(
			ui.btnName,
			SIGNAL(clicked()),
			this,
			SLOT(OnBtnName())
			)
		);
	assert(
		connect(
			ui.btnPasswd,
			SIGNAL(clicked()),
			this,
			SLOT(OnBtnPasswd())
			)
		);
	assert(
		connect(
			ui.btnLogin,
			SIGNAL(clicked()),
			this,
			SLOT(OnBtnLogin())
			)
		);
}

int Test9_3a_12_9::OnBtnName()
{
	ui.stackedWidget->setCurrentIndex(0);
	return 0;
}

int Test9_3a_12_9::OnBtnPasswd()
{
	ui.stackedWidget->setCurrentIndex(1);
	return 0;
}

int Test9_3a_12_9::OnBtnLogin()
{
	ui.stackedWidget->setCurrentIndex(2);
	return 0;
}





————————————————————————

尾巴:

没什么要说的... 周末休息下吧

【Qt学习笔记】9.容器窗口

原文:http://zhweizhi.blog.51cto.com/10800691/1881176

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!