卡片式界面布局:QStackedWidget
在很多程序中,需要用到卡片式布局管理(其中卡片式布局就是在一个主界面中,可以实现卡片式切换界面,类似于手机QQ下端的消息、联系人、看点、动态这四个大界面切换一样)。
本文章先说明在QT设计师界面下如何进行设计。StackedWidget位置如下图所示,将其拖入界面中,调整合适的大小。
- 上图右方对象和类你能看到StackedWidget对象和相应的类,其有Page,默认是两个Page页。我自己添加了一个页。
- 三个页面相对独立,你想在哪个页面添加什么控件,就从右方点击相应的Page,进入后,默认是空的,你需要自行添加控件。
- 当某一个Page页面设计完之后,点击切换到下一个页面。
- 经过上述的设计,你就可以将StackedWidget的三个页面都设计完。之后,你要是想通过点击按钮进行切换,就利用代码进行。下方的代码区,我是利用的ListWidget中的Item进行切换界面的
void MainWindow::on_listWidget_clicked(const QModelIndex &index)
{
//从ListWidget控件中获取现在用户停放在哪一条Item
int row_list = ui->listWidget->currentRow();
//利用if语句进行判断,也可以利用Switch()
if(row_list == 0) //如果是ListWidget的第一条Item处
{
//跳到Page1
ui->stackedWidget->setCurrentIndex(0);
}
else if (row_list == 1)
{
//跳到Page2页面
ui->stackedWidget->setCurrentIndex(1);
}
else if (row_list ==2)
{
//跳到Page3页面
ui->stackedWidget->setCurrentIndex(2);
}
}