Qt之QStackedWidget和QStackedLayout

一、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(已佈局)。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章