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

相关推荐
梵得儿SHI几秒前
Java 反射机制深度剖析:性能与安全性的那些坑
java·开发语言·安全·反射·动态代理·性能·反射机制
fsnine6 分钟前
Python图形化界面——pyqt5教程
开发语言·python·qt
嵌入式-老费15 分钟前
Easyx图形库应用(和lua结合使用)
开发语言·lua
AsiaLYF16 分钟前
kotlin中MutableStateFlow和MutableSharedFlow的区别是什么?
android·开发语言·kotlin
Asuncion00727 分钟前
Docker核心揭秘:轻量级虚拟化的革命
服务器·开发语言·docker·云原生
深思慎考1 小时前
RabbitMQ 入门:基于 AMQP-CPP 的 C++ 实践指南与二次封装
开发语言·c++·分布式·rabbitmq·api
catchadmin1 小时前
PHP8.5 的新 URI 扩展
开发语言·后端·php
似水流年 光阴已逝1 小时前
从Excel姓名匹配案例学Python:由点及面的系统化学习指南
开发语言·python·excel
重生之我要当java大帝2 小时前
java微服务-尚医通-管理平台前端搭建-医院设置管理-4
java·开发语言·前端
Q_Q19632884752 小时前
python+vue的在线租房 房屋租赁系统
开发语言·vue.js·spring boot·python·django·flask·node.js