Qt 界面开发:使用 QSplitter 和 QStackedWidget 实现多页功能
Qt 多页功能实现
本代码示例使用 Qt 框架中的 QSplitter 和 QStackedWidget 实现多页功能,通过点击左侧列表选择不同页面,右侧部分会相应地显示对应内容。c++#include
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): 使用
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 需要自行定义,并根据需要添加相应的内容。
功能说明
- 用户可以通过点击左侧列表选择不同的图形计算类型,右侧部分会相应地显示对应页面。- 用户可以通过点击“关闭”按钮关闭应用程序。
扩展功能
- 可以添加更多的图形计算类型。- 可以添加更多的功能,例如图形绘制,结果显示等。- 可以使用更高级的布局方式,例如
QGridLayout,QFormLayout等。- 可以使用更丰富的 Qt 组件,例如QComboBox,QSpinBox
原文地址: https://www.cveoy.top/t/topic/oLE4 著作权归作者所有。请勿转载和采集!