当前位置: 首页 > news >正文

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); 

}

```

2. 编写主函数在"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适合方正整齐的界面布局。


http://www.mrgr.cn/news/26510.html

相关文章:

  • 低空经济火爆:先考个无人机飞行执照傍身
  • 垂直领域大模型微调实践经验最全总结
  • vscode必装插件推荐
  • 实例讲解电动汽车蠕行控制策略及Simulink建模方法
  • 图像滤波---各项异性扩散滤波使用笔记及代码
  • 22222222
  • Day10-作业讲解,Ingress规则编写及Jenkins集成K8S项目实战案例
  • 【PythonCode】力扣Leetcode41~45题Python版
  • 通信工程学习:什么是FDMA频分多址
  • 【30天玩转python】高级数据结构
  • Centos入门必备基础知识
  • R语言机器学习算法实战系列(一):XGBoost算法(eXtreme Gradient Boosting)
  • mysql 日志恢复
  • Unity中InputField一些属性的理解
  • 66. 构建乘积数组
  • 上海市高等学校信息技术水平考试 C程序设计(2020D场)全解
  • 力扣每日一题:236.二叉树的最近公共祖先
  • 【linux007】目录操作命令篇 - mkdir 命令
  • 2024年职场人士都在用的PDF转换工具大赏
  • Flask 第六课 -- 路由