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适合方正整齐的界面布局。

相关推荐
咚为几秒前
Rust 跨平台编译实战:从手动配置到 Cross 容器化
开发语言·后端·rust
永远睡不够的入3 分钟前
C++STL详解2:stack和queue
开发语言·c++
宵时待雨13 分钟前
C++笔记归纳11:多态
开发语言·c++·笔记
小道士写程序20 分钟前
Babylon.js WebGPU Ocean Demo — 完整踩坑记录
开发语言·javascript·ecmascript
Code知行合壹26 分钟前
JDK10新特性
开发语言·jdk
qq_3907603926 分钟前
简单的线程安全日志记录器
开发语言·数据库·c#
T1an-134 分钟前
C++11智能指针shared_ptr的控制块内都有什么?
开发语言·c++
迈巴赫车主42 分钟前
天梯赛 L2-004 这是二叉搜索树吗?java
java·开发语言·数据结构·算法·天梯赛
小鸡吃米…1 小时前
基准测试与性能分析
开发语言·python
神仙别闹1 小时前
基于MATLAB实现(GUI)汽车出入库识别系统
开发语言·matlab·汽车