Qt 界面编程:使用 QSplitter 和 QStackedWidget 实现多页面切换

本示例代码使用 Qt 界面编程实现一个简单的多页面切换功能,页面内容包含三角形、矩形和圆形的面积计算。

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, &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();
}

代码说明:

  1. 使用 QSplitter 创建水平分割窗口,左侧放置 QListWidget 用于显示页面选择,右侧放置 QWidget 用于展示不同页面内容。
  2. 使用 QStackedWidget 创建层叠窗口,将不同页面内容(Form1Form2Form3)加入到层叠窗口中。
  3. 使用 QListWidgetcurrentRowChanged 信号与 QStackedWidgetsetCurrentIndex 槽函数连接,实现根据选择的页面切换显示内容。
  4. 在右侧窗口添加一个关闭按钮,并使用 QObject::connect 将其连接到 QApplication::quit 槽函数,实现点击关闭按钮退出整个应用程序。

注意:

  • 代码中 Form1Form2Form3 需要根据实际需求自行定义。
  • 代码示例仅供参考,实际应用中可能需要根据具体需求进行调整。

优化建议:

  • 可以将代码封装成一个独立的类,提高代码的可复用性。
  • 可以使用信号槽机制实现页面之间的数据传递和交互。
  • 可以根据实际需求使用其他 Qt 界面组件来丰富界面效果。

希望本示例代码能够帮助您更好地理解使用 Qt 界面编程实现多页面切换的功能。

Qt 界面编程:使用 QSplitter 和 QStackedWidget 实现多页面切换

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

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