您的位置:首页 > 编程语言 > Qt开发

Qt之QStackedWidget和QStackedLayout

2016-12-07 17:06 351 查看
一、QStackedLayout类

QStackedLayout类可以对一组子窗口部件进行摆放,或者对它们进行“分页”,而且一次只显示其中一个,而把其他的子窗口部件或者分页都隐藏起来,QStackedLayout本身并不可见。分页是从0开始编号的。要使某个特定的子窗口部件可见,可以用一个页号来调用setCurrentIndex()。使用indexOf()可以获取子窗口部件的页号。这里给出部分实例代码:

Widget::Widget(QWidget *parent) :

QWidget(parent),

ui(new Ui::Widget)

{

ui->setupUi(this);

stacklayout = new QStackedLayout;

stacklayout->addWidget(oneWidget); //index=0

stacklayout->addWidget(twoWidget); //index=1

stacklayout->addWidget(fiveWidget); //index=2

stacklayout->addWidget(threeWidget); //index=3

stacklayout->addWidget(fourWidget); //index=4

stacklayout->addWidget(powerWidget); //index=5

setLayout(stacklayout); //必须要有

connect(oneWidget->start,SIGNAL(clicked()),this,SLOT(change1()));

connect(oneWidget->setup,SIGNAL(clicked()),this,SLOT(change2()));

connect(oneWidget->playback,SIGNAL(clicked()),this,SLOT(change3()));

connect(oneWidget->devinfo,SIGNAL(clicked()),this,SLOT(change4()));

connect(twoWidget->videoshow->back,SIGNAL(clicked()),this,SLOT(change0()));

connect(fiveWidget->backbtn,SIGNAL(clicked()),this,SLOT(change0()));

connect(threeWidget->backButton,SIGNAL(clicked()),this,SLOT(change0()));

connect(fourWidget->backbutten,SIGNAL(clicked()),this,SLOT(change0()));

}

void Widget::change0()

{

stacklayout->setCurrentIndex(0);

}

void Widget::change1()

{

stacklayout->setCurrentIndex(1);

}

void Widget::change2()

{

stacklayout->setCurrentIndex(2);

}

void Widget::change3()

{

stacklayout->setCurrentIndex(3);

}

void Widget::change4()

{

stacklayout->setCurrentIndex(4);

}

void Widget::change5()

{

stacklayout->setCurrentIndex(5);

}

二、QStackedWidget类

QStackedWidget类提供了一个带内置QStackedLayout的QWidget。创建stackedwidget会默认创建一个子widget(已布局)。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  qt