美文网首页
Qt 界面布局

Qt 界面布局

作者: wjundong | 来源:发表于2020-02-02 03:06 被阅读0次

QGridLayout 网格布局

addWidget () 括号内有四个参数。分别为所添加组件位置的行数、列数、所添加组件占的行数、列数

Layout::Layout(QWidget *parent)
    : QWidget(parent)
{
    // 在当前 QWidget 中创建网格布局
    QGridLayout *mainLayout = new QGridLayout(this);

    QTextBrowser *textBrowser1 = new QTextBrowser();
    QTextBrowser *textBrowser2 = new QTextBrowser();
    QPushButton *button1 = new QPushButton("按钮 1");
    QPushButton *button2 = new QPushButton("按钮 2");
    QPushButton *button3 = new QPushButton("按钮 3");
    QPushButton *button4 = new QPushButton("按钮 4");
    QPushButton *button5 = new QPushButton("按钮 5");

    // 设置两个文本框所占行数列数都为 2
    mainLayout->addWidget(textBrowser1, 0, 0, 2, 2);
    mainLayout->addWidget(textBrowser2, 2, 0, 2, 2);

    // 在第二列加入四个 button,0 ~ 3行
    mainLayout->addWidget(button1, 0, 2);
    mainLayout->addWidget(button2, 1, 2);
    mainLayout->addWidget(button3, 2, 2);
    mainLayout->addWidget(button4, 3, 2);
    // 最后一个 button 占 1 个行数,3 个列数
    mainLayout->addWidget(button5, 4, 0, 1, 3);
}
效果图

布局嵌套

水平布局和垂直布局比较简单,可直接看布局嵌套。

Layout::Layout(QWidget *parent)
    : QWidget(parent)
{
    // 父布局为水平布局
    QHBoxLayout *mainLayout = new QHBoxLayout(this);
    // 左右两个子布局都为垂直布局
    QVBoxLayout *leftLayout = new QVBoxLayout;
    QVBoxLayout *rightLayout = new QVBoxLayout;

    // 左边布局只放一个 textBrowser1 代表棋盘
    QTextBrowser *textBrowser1 = new QTextBrowser();
    leftLayout->addWidget(textBrowser1);

    // 创建一个水平布局用来放置 button
    QHBoxLayout *buttonLayout = new QHBoxLayout;
    QPushButton *button1 = new QPushButton("悔棋");
    QPushButton *button2 = new QPushButton("认输");
    buttonLayout->addWidget(button1);
    buttonLayout->addWidget(button2);

    // 右边布局由三个部分组成,两个组件和一个放置button 的水平布局
    QTextBrowser *textBrowser2 = new QTextBrowser();
    QTextBrowser *textBrowser3 = new QTextBrowser();
    rightLayout->addWidget(textBrowser2);
    rightLayout->addWidget(textBrowser3);
    rightLayout->addLayout(buttonLayout);
    // 设置布局中的各个部分的比例
    rightLayout->setStretchFactor(textBrowser2, 2);
    rightLayout->setStretchFactor(textBrowser3, 5);

    mainLayout->addLayout(leftLayout);
    mainLayout->addLayout(rightLayout);
    mainLayout->setStretchFactor(leftLayout, 5);
    mainLayout->setStretchFactor(rightLayout, 1);
}

效果图

相关文章

  • 教程| pyqt5极速生成界面软件

    QT designer设计界面qt designer默认有4种布局方式:垂直布局水平布局网格布局绝对位置布局 通过...

  • Qt 界面布局

    QGridLayout 网格布局 addWidget () 括号内有四个参数。分别为所添加组件位置的行数、列数、所...

  • Qt 布局常用功能记录

    介绍 在Qt界面设计中,布局(Layout)算是用的比较多的一个类了。布局主要用于管理界面的各个控件元素,保证界面...

  • 3.QT悬浮窗口及TAB窗口--Apple的学习笔记

    一,前言 之前做了基本的界面自动布局控件,以及掌握界面切换及隐藏显示的方法,可以参考我的blog:2.QT界面切换...

  • qt 入门第一天

    qt入门 label 建立连接 窗口的布局 这个界面由三个窗口部件组成分别是:QSpingBox,QSpinBOX...

  • Qt自学笔记第3章

    布局管理器 Qt的界面布局相对比较简单,虽然从代码角度来说可能有些长,但其实要理解他并不困难,因为这些代码通常都非...

  • QT界面

    ui_widget.h文件 ui文件经过uic编译后,根据窗体上的组件及其属性、信号与槽的关联等自动生成的一个类的...

  • QML用户界面基础(一)

    QML 允许开发人员以声明的方式构建用户界面。Qt Quick[https://doc.qt.io/qt-5/qt...

  • 第1章 初识Qt 1.2 Qt Creater简介

    本节介绍Qt CrCreater的使用方法。 1.2.1 主界面 Qt Creater是Qt集成开发环境,你可以在...

  • QT_QQIM

    开发环境:windows10+QT5.6 基于跨平台QT界面库实现UDP群聊 软件界面 群聊 其他小功能:文字大小...

网友评论

      本文标题:Qt 界面布局

      本文链接:https://www.haomeiwen.com/subject/zbufxhtx.html