QT入门学习(3)

本文详细介绍了QT5.8版本中QSplitter、QDockWidget和QStackedWidget等布局组件的使用方法,包括如何创建、设置属性以及与控件的交互,适用于初学者快速掌握QT布局技巧。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

基于QT5.8版本的基础学习知识点整理(布局)

分割窗口QSplitter类

//主分割窗口
QSplitter *splittermain = new QSplitter(Qt::Horizontal, 0);//新建一个QSplitter对象,作为主分割窗口,设定这个分割窗口为水平分割窗口
QTextEdit *textLeft = new QTextEdit("Left Widget", splittermain);//新建一个文本编辑框,并且以水平分割窗口为父窗口
textLeft->setAlignment(Qt::AlignCenter);//设定这个编辑框的文字对齐方式。

textLeft->setAlitgment()这个函数就是设置文字的对齐方式,常用的对齐方式有这样的几种:
1、Qt::AlignLeft; 左对齐
2、Qt::AlignRight;右对齐
3、Qt::AlignCenter;文字居中
4、Qt::AlignUp;文字与顶端对齐
5、Qt::AlignBottom;文字与底部对齐
QSplitter *righterLitter = new QSplitter(Qt::Vertical, splittermain);//新建一个垂直分割串口,并以水平分割窗口为父窗口
righterLitter->setOpaqueResize(true);
QTextEdit *toptextedit = new QTextEdit(“Top Widget”, righterLitter);
toptextedit->setAlignment(Qt::AlignCenter);

QTextEdit *bottomTextEdit = new QTextEdit("Bottom Widget", righterLitter);
bottomTextEdit->setAlignment(Qt::AlignCenter);
splittermain->setStretchFactor(1,1);
splittermain->setWindowTitle("SPlitter");
splittermain->show();

righterLitter->setOpaqueResize(true);
这个函数的功能是设置分割窗口的分隔条在拖拽是是否实时更新,如果参数为true就是实时更新显示,否则就不实时更新显示,这里我们设置的是实时更新。

splittermain->setStretchFactor(1,1);
这个函数的功能是设置哪个控件可以伸缩,它的第一个参数用于指定设置的控件序号,控件序号按插入的先后顺序从0开始依次编号;第二个参数表示这个控件是否可以伸缩,如果这个数大于0则表示这个控件可以伸缩。以上的例子就表示splittermain 不可以伸缩,righterLitter 是可以伸缩的。

停靠窗口QDockWidget类

创建停靠窗体的流程:

a)创建一个QDockWidget对象的停靠窗体。

b)设置此停靠窗体的属性,通常可以使用setFeatures()以及setAllowedAreas()两种方法。

c)新建一个要插入停靠窗体的控件,常用的有QListWidget和QtextEdit。

d)将控件插入停靠窗体,调用QDockWidget()和setWidget()成员函数。

e)使用addDockWidget()方法,在MainWindow中加入此停靠窗体。

堆栈窗体QStackedWidget类

在实际运用中堆栈窗体经常和QListWidget下拉列表框QComboBox配合使用。

现在我们手动地创建一个堆栈窗体。新建一个工程,取消创建图形界面。在这个功能中需要使用到,QListWidget对象、QTextEdit对象、QStackedWidget对象以及用于水平布局的QHBoxLayout对象。所以我们需要在类中添加相应的成员。

然后我们需要在这个类的构造函数中添加如下的代码。

新建一个QListWidget对象,并且向其中三个条目,作为选择的选项。

list = new QListWidget(this);
//在新建的QListWidget控件中插入三个条目作为选项
list->insertItem(0, "windows1");
list->insertItem(1, "windows2");
list->insertItem(2, "windows3");

然后将三个QTextEdit对象初始化,并且给它们设定一下属性,让它们的文本居中对齐。

//创建三个QTextEdit控件依次插入堆栈窗体中
text1 = new QTextEdit("文本编辑框1");
text1->setAlignment(Qt::AlignCenter);
 
text2 = new QTextEdit("文本编辑框2");
text2->setAlignment(Qt::AlignCenter);
 
text3 = new QTextEdit("文本编辑框3");
text3->setAlignment(Qt::AlignCenter);

再将这三个文本编辑框依次插入到堆栈窗体中就可以了

stack = new QStackedWidget(this);
stack->addWidget(text1);
stack->addWidget(text2);
stack->addWidget(text3)

接下来就是将QListWidget对象和QStackedWidget对象进行水平布局。

mainlayout =  new QHBoxLayout(this);
mainlayout->setMargin(5);
mainlayout->setSpacing(5);
mainlayout->addWidget(list);
mainlayout->addWidget(stack);
mainlayout->setStretchFactor(list, 1);
mainlayout->setStretchFactor(stack, 4);
这里说一下setStretchFactor();函数的作用,这里表示list和stack两者之间的比例,以上的例子是1:4,

最后将list和stack通过信号和槽连接起来我们就可以根据选择list中的选项,来显示不同是文本编辑框了。

内容概要:本文档详细介绍了基于Google Earth Engine (GEE) 构建的阿比让绿地分析仪表盘的设计实现。首先,定义了研究区域的几何图形并将其可视化。接着,通过云掩膜函数和裁剪操作预处理Sentinel-2遥感影像,筛选出高质量的数据用于后续分析。然后,计算中值图像并提取NDVI(归一化差异植被指数),进而识别绿地及其面积。此外,还实现了多个高级分析功能,如多年变化趋势分析、人口-绿地交叉分析、城市热岛效应分析、生物多样性评估、交通可达性分析、城市扩张分析以及自动生成优化建议等。最后,提供了数据导出、移动端适配和报告生成功能,确保系统的实用性和便捷性。 适合人群:具备一定地理信息系统(GIS)和遥感基础知识的专业人士,如城市规划师、环境科学家、生态学家等。 使用场景及目标:①评估城市绿地分布及其变化趋势;②分析绿地人口的关系,为城市规划提供依据;③研究城市热岛效应及生物多样性,支持环境保护决策;④评估交通可达性,优化城市交通网络;⑤监测城市扩张情况,辅助土地利用管理。 其他说明:该系统不仅提供了丰富的可视化工具,还集成了多种空间分析方法,能够帮助用户深入理解城市绿地的空间特征及其对环境和社会的影响。同时,系统支持移动端适配,方便随时随地进行分析。用户可以根据实际需求选择不同的分析模块,生成定制化的报告,为城市管理提供科学依据。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值