Qt 多页功能实现

本代码示例使用 Qt 框架中的 QSplitterQStackedWidget 实现多页功能,通过点击左侧列表选择不同页面,右侧部分会相应地显示对应内容。c++#include #include #include #include #include #include #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();}

模块图

+---------------------------------------+| || 分割线 || |+---------------------------------------+| || 列表 || |+---------------------------------------+| || 右侧部分(层叠) || || || || || || || || |+---------------------------------------+| || 水平布局 || || || || || || || +----------+ || | 关闭 | || +----------+ || |+---------------------------------------+

代码说明:

  1. 创建主分割器 (QSplitter): 使用 QSplitter(Qt::Horizontal) 创建一个水平分割器,用于将窗口分成左右两部分。2. 创建左侧列表 (QListWidget): 使用 QListWidget(a1) 创建一个列表框,并添加三个条目:三角形、矩形、圆形。3. 创建右侧部分 (QStackedWidget): 使用 QStackedWidget 创建一个层叠窗口,用于显示不同的页面。4. 创建水平布局 (QHBoxLayout): 使用 QHBoxLayout 创建一个水平布局,用于放置一个关闭按钮。5. 创建关闭按钮 (QPushButton): 使用 QPushButton('关闭') 创建一个关闭按钮,并连接到应用程序的退出槽函数。6. 连接列表和层叠窗口信号槽: 使用 QObject::connect() 将列表的 currentRowChanged 信号连接到层叠窗口的 setCurrentIndex 槽函数,实现点击列表不同条目,切换到对应页面。7. 创建不同页面 (Form1, Form2, Form3): 使用自定义的类 Form1, Form2, Form3 创建不同页面,并将其添加到层叠窗口。8. 显示界面: 使用 a1->show() 显示主分割器,并使用 a.exec() 运行应用程序。

注意: 代码中的 Form1, Form2, Form3 需要自行定义,并根据需要添加相应的内容。

功能说明

  • 用户可以通过点击左侧列表选择不同的图形计算类型,右侧部分会相应地显示对应页面。- 用户可以通过点击“关闭”按钮关闭应用程序。

扩展功能

  • 可以添加更多的图形计算类型。- 可以添加更多的功能,例如图形绘制,结果显示等。- 可以使用更高级的布局方式,例如 QGridLayoutQFormLayout 等。- 可以使用更丰富的 Qt 组件,例如 QComboBox, QSpinBox
Qt 界面开发:使用 QSplitter 和 QStackedWidget 实现多页功能

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

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