Qt基础,布局管理

续上一文

  1. 在"detail.cpp"文件中添加如下代码:

```cpp

Detail::Detail(QWidget *parent) : QWidget(parent)

{

NationalLabel = new QLabel(tr("国家/地址:"));

NationalComboBox = new QComboBox;

NationalComboBox->insertItem(0, tr("中国"));

NationalComboBox->insertItem(1, tr("美国"));

NationalComboBox->insertItem(2, tr("英国"));

ProvinceLabel = new QLabel(tr("省份:"));

ProvinceComboBox = new QComboBox;

ProvinceComboBox->insertItem (0, tr("江苏省"));

ProvinceComboBox->insertItem(1, tr("山东省"));

ProvinceComboBox->insertItem(2, tr("浙江省"));

CityLabel = new QLabel(tr("城市:"));

CityLineEdit = new QLineEdit;

IntroductLabel = new QLabel(tr("个人说明:"));

IntroductTextEdit = new QTextEdit;

mainLayout = new QGridLayout(this);

mainLayout->setMargin(15);

mainLayout->setSpacing(10);

mainLayout->addWidget(NationalLabel, 0, 0);

mainLayout->addWidget(NationalComboBox, 0, 1);

mainLayout->addWidget(ProvinceLabel, 1, 0);

mainLayout->addWidget(ProvinceComboBox, 1, 1);

mainLayout->addWidget(CityLabel, 2, 0);

mainLayout->addWidget(CityLineEdit, 2, 1);

mainLayout->addWidget(IntroductLabel, 3, 0);

mainLayout->addWidget(IntroductTextEdit, 3, 1);

}

```

  1. 编写主函数在"main.cpp"文件中:

```cpp

#include "content.h"

#include <QApplication>

#include <QTextCodec>

#include <QSplitter>

#include <QListWidget>

int main(int argc, char *argv[])

{

QApplication a(argc, argv);

QFont font("AR PL KaitiM GB", 12);

a.setFont(font);

QSplitter *splitterMain = new QSplitter(Qt::Horizontal, 0);

splitterMain->setOpaqueResize(true);

QListWidget *list = new QListWidget(splitterMain);

list->insertItem(0, QObject::tr("基本信息"));

list->insertItem(1, QObject::tr("联系方式"));

list->insertItem(2, QObject::tr("详细资料"));

Content *content = new Content(splitterMain);

QObject::connect(list, SIGNAL(currentRowChanged(int)), content->stack, SLOT(setCurrentIndex(int)));

splitterMain->setWindowTitle(QObject::tr("修改用户资料"));

splitterMain->setMinimumSize(splitterMain->minimumSize());

splitterMain->setMaximumSize(splitterMain->maximumSize());

splitterMain->show();

return a.exec();

}

```

可选择不同的布局方案,根据具体情况使用最方便、合理的布局方式。通常,QGridLayout能完成QHBoxLayout与QVBoxLayout的功能,但对于简单的水平或竖直排列,后两者更方便,而QGridLayout适合方正整齐的界面布局。

相关推荐
郝学胜-神的一滴22 分钟前
【技术实战】500G单行大文件读取难题破解!生成器+自定义函数最优方案解析
开发语言·python·程序人生·面试
愤豆26 分钟前
02-Java语言核心-语法特性-注解体系详解
java·开发语言·python
是翔仔呐42 分钟前
第13章 SPI通信协议全解:底层时序、4种工作模式与W25Qxx Flash芯片读写实战
c语言·开发语言·stm32·单片机·嵌入式硬件·学习·gitee
2401_878530211 小时前
自定义内存布局控制
开发语言·c++·算法
wjs20241 小时前
SQLite 子查询
开发语言
AndrewMe82111 小时前
detailed-docx:一个能保住格式的 Word 文档操作库
开发语言·python·word
IT方大同1 小时前
RT_thread(RTOS实时操作系统)线程的创建与切换
c语言·开发语言·嵌入式硬件
智算菩萨1 小时前
【OpenGL】6 真实感光照渲染实战:Phong模型、材质系统与PBR基础
开发语言·python·游戏引擎·游戏程序·pygame·材质·opengl
jinanwuhuaguo1 小时前
OpenClaw深度沟通渠道-全景深度解构
大数据·开发语言·人工智能·openclaw
是翔仔呐1 小时前
第14章 CAN总线通信全解:底层原理、帧结构与双机CAN通信实战
c语言·开发语言·stm32·单片机·嵌入式硬件·学习·gitee