Qt中多页面的创建——TabWidget,QStackedWidget

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);

Qt中多页面的创建——TabWidget,QStackedWidget_第1张图片
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…等设置为全局变量
Qt中多页面的创建——TabWidget,QStackedWidget_第2张图片

你可能感兴趣的:(Qt)