Qt 界面设计:使用 QSplitter、QListWidget 和 QStackedWidget 实现选项卡式界面
#include 'widget.h'
#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();
}
实验总结
本次实验完成了一个简单的界面程序,主要使用了 Qt 的一些界面类和布局管理器,实现了一个左侧为选项列表,右侧为不同表单的层叠界面,可以通过点击左侧选项实现右侧表单的切换,同时还添加了一些按钮和信号槽的连接,实现了一些简单的功能。
在实验过程中,我学会了使用 Qt Creator 进行界面设计和代码编写,熟悉了 Qt 的一些界面组件和布局管理器的使用方法,了解了信号槽的基本用法。通过实验,我认识到 Qt 的界面设计非常方便快捷,代码框架清晰易懂,可以很方便地实现不同的功能。
在实验过程中遇到了一些问题,比如一开始不知道如何将多个表单组合成层叠界面,后来通过查阅文档和实验代码,成功实现了功能。另外还遇到了一些布局方面的问题,比如如何将按钮放在右侧,如何让层叠界面自适应大小等,通过不断尝试和调整,最终成功解决了这些问题。
总的来说,本次实验让我对 Qt 的界面设计和布局管理有了更深刻的认识和理解,同时也提高了我的代码编写和调试能力。希望在以后的学习中,能够更加熟练地使用 Qt 进行界面设计和编程,实现更加复杂和实用的功能。
原文地址: https://www.cveoy.top/t/topic/ox2B 著作权归作者所有。请勿转载和采集!