Qt中多页面的创建——TabWidget,QStackedWidget
QStackedWidget类创建多页面无页面目录,可结合QTreeWidget和QTreeWidgetItem设置目录,QTabWidget创建的多页面自动有目录,不过目录在上方。
1.QtabWidget创建多页面
QFormTable *formtable = new QFormTable(this);
formtable->setAttribute(Qt::WA_DeleteOnClose);//用过删除
//创建到tabWidget的嵌入式型窗口
int cur = ui->tabWidget->addTab(formtable,QString::asprintf("Table %d",ui->tabWidget->count()));
ui->tabWidget->setCurrentIndex(cur);
2.QStackedWidget创建多页面
QPage1 *page1Widget = new QPage1(this);
QPage2 *page2Widget = new QPage2(this);
QPage3 *page3Widget = new QPage3(this);
QPage4 *page4Widget = new QPage4(this);
stackWidget = new QStackedWidget;
stackWidget->addWidget(page1Widget);
stackWidget->addWidget(page2Widget);
stackWidget->addWidget(page3Widget);
stackWidget->addWidget(page4Widget);
stackWidget->setCurrentWidget(page1Widget);//当前显示
切换显示可用setCurrentWidget或者setCurrentIndex(int)
用QTreeWidget和QTreeWidgetItem设置目录如下
tree = new QTreeWidget();
tree->setColumnCount(1);
QString header = "污水监控系统";
tree->setHeaderLabel(header);
item1 = new QTreeWidgetItem(tree);
item1->setText(0,"1村");
item2 = new QTreeWidgetItem(tree);
item2->setText(0,"2村");
item3 = new QTreeWidgetItem(tree);
item3->setText(0,"3村");
item4 = new QTreeWidgetItem(tree);
item4->setText(0,"4村");
connect(tree,&QTreeWidget::itemClicked,this,&MainWindow::treeChanged);
if(item == item1)
{
stackWidget->setCurrentIndex(0);
}
else if(item == item2)
{
stackWidget->setCurrentIndex(1);
}
else if(item == item3)
{
stackWidget->setCurrentIndex(2);
}
else
{
stackWidget->setCurrentIndex(3);
}
Tree、item1…等设置为全局变量