Qt 界面编程:使用 QSplitter 和 QStackedWidget 实现多页面切换
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();
}
代码说明:
- 使用
QSplitter创建水平分割窗口,左侧放置QListWidget用于显示页面选择,右侧放置QWidget用于展示不同页面内容。 - 使用
QStackedWidget创建层叠窗口,将不同页面内容(Form1、Form2、Form3)加入到层叠窗口中。 - 使用
QListWidget的currentRowChanged信号与QStackedWidget的setCurrentIndex槽函数连接,实现根据选择的页面切换显示内容。 - 在右侧窗口添加一个关闭按钮,并使用
QObject::connect将其连接到QApplication::quit槽函数,实现点击关闭按钮退出整个应用程序。
注意:
- 代码中
Form1、Form2、Form3需要根据实际需求自行定义。 - 代码示例仅供参考,实际应用中可能需要根据具体需求进行调整。
优化建议:
- 可以将代码封装成一个独立的类,提高代码的可复用性。
- 可以使用信号槽机制实现页面之间的数据传递和交互。
- 可以根据实际需求使用其他 Qt 界面组件来丰富界面效果。
希望本示例代码能够帮助您更好地理解使用 Qt 界面编程实现多页面切换的功能。
原文地址: https://www.cveoy.top/t/topic/owdv 著作权归作者所有。请勿转载和采集!