Qt 多页面应用程序示例:使用 QSplitter、QListWidget 和 QStackedWidget

本示例演示使用 Qt 的 QSplitter、QListWidget 和 QStackedWidget 控件实现一个简单的多页面应用程序。用户可以通过左侧列表选择不同的页面,并在右侧展示对应内容。

代码示例

#include 'widget.h'
#include <QApplication>
#include <QSplitter>
#include <QListWidget>
#include <QLayout>
#include <QStackedWidget>
#include <QPushButton>
#include 'form1.h'
#include 'form2.h'
#include 'form3.h'

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    QSplitter *a1 = new QSplitter(Qt::Horizontal);//主分割水平
    QListWidget *b = new QListWidget(a1);//左侧列表
    b->addItem('三角形的面积计算');
    b->addItem('矩形的面积计算');
    b->addItem('圆的面积计算');
    //创建右侧部分
    QWidget *p = new QWidget(a1);
    QVBoxLayout *c = new QVBoxLayout(p);
    QStackedWidget *c1 = new QStackedWidget;
    //水平布局
    QHBoxLayout *h = new QHBoxLayout;
    //QPushButton *ps = new QPushButton('修改');
    QPushButton *ps1 = new QPushButton('关闭');
    //QObject::connect(ps1, &QPushButton::clicked, &w, &QWidget::close);
    QObject::connect(ps1, &QPushButton::clicked, &a, &QApplication::quit);//槽函数关闭窗口

    //h->addWidget(ps);
    h->addWidget(ps1);
    h->setAlignment( Qt::AlignRight);
    //把右侧的放入垂直
    c->addWidget(c1);
    c->addLayout(h);
    //w.show();
    //使用Qt界面类创建层叠
    Form1 *d = new Form1;
    Form2 *d1 = new Form2;
    Form3 *d2 = new Form3;
    c1->addWidget(d);//将页面加入层叠
    c1->addWidget(d1);
    c1->addWidget(d2);
    QObject::connect(b, &QListWidget::currentRowChanged, c1, &QStackedWidget::setCurrentIndex);//利用槽函数点击列表对应跳转
    a1->show();//展示
    return a.exec();
}

流程图

主程序 --> QSplitter --> QListWidget --> QStackedWidget --> Form1, Form2, Form3 QListWidget --> currentRowChanged --> QStackedWidget --> setCurrentIndex QPushButton --> clicked --> QApplication --> quit

说明

  1. 使用 QSplitter 将窗口分成左右两部分。
  2. 使用 QListWidget 在左侧显示页面选项。
  3. 使用 QStackedWidget 在右侧展示不同的页面内容。
  4. 通过 QObject::connect 连接 QListWidgetcurrentRowChanged 信号和 QStackedWidgetsetCurrentIndex 槽函数,实现页面切换。
  5. 使用 QPushButton 添加关闭按钮,并连接到 QApplication::quit 槽函数,关闭应用程序。

总结

本示例展示了如何使用 Qt 的 QSplitter、QListWidget 和 QStackedWidget 控件创建简单的多页面应用程序。通过连接信号和槽函数,可以实现页面之间的切换和应用程序的关闭。

Qt 界面开发:使用 QSplitter、QListWidget 和 QStackedWidget 创建多页面应用程序

原文地址: https://www.cveoy.top/t/topic/oLEu 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录