Qt界面布局

继承关系:

qmake:QT += widgets //.pro文件记得加
Inherits:QLayout

栅格布局QGridLayout:

#include <QGridLayout>

    //! [布局]
    QGridLayout *gridLayout = new QGridLayout;
    gridLayout->addLayout(nameLable, 0, 0);
    gridLayout->addLayout(nameInput, 0, 1);
    gridLayout->addLayout(addressLabel, 1, 0);
    gridLayout->addLayout(addressInput, 1, 1);
    //! [布局]

    //! [设置布局]
    this->setLayout(gridLayout);
    //! [设置布局]

水平布局QHorizontalLayout:也叫上下布局

垂直布局QVerticalLayout:也叫左右布局

表单布局QFormLayout:

垂直格子布局QVBoxLayout:

#include <QVBoxLayout>

//构造函数
    //! [实例化垂直格子布局]
    QVBoxLayout *vBoxLayout = new QVBoxLayout(this);
    //! [实例化垂直格子布局]

    //![添加菜单按钮]
    for(int i = 1, n = 5; i <= n; i++){
        QString buttonText(tr("菜单%0").arg(i));
        QPushButton *pushButton = new QPushButton(buttonText, this);
        vBoxLayout->addWidget(pushButton); //添加菜单按钮
    }
    //![添加菜单按钮]

    //![设置布局]
    //this->setLayout(vBoxLayout);
    //![设置布局]

效果图:

水平格子布局QHBoxLayout:

#include <QHBoxLayout>

//构造函数
    //! [实例化布局]
    QHBoxLayout *hBoxLayout = new QHBoxLayout(this);
    //! [实例化布局]

    //! [添加按钮]
    for(int i = 1, n = 5; i <= n; i++){
        QString buttonText(tr("第%0页").arg(i));
        QPushButton *pushButton = new QPushButton(buttonText,this);
        hBoxLayout->addWidget(pushButton);
    }
    //! [添加按钮]

    //! [设置布局]
    //this->setLayout(hBoxLayout);
    //! [设置布局]

效果图:

时间: 2024-12-27 21:13:52

Qt界面布局的相关文章

Qt 界面使用自定义控件 &quot;提升为&quot;

1.效果图 我做了一个非常简单的例子,一个可以显示颜色的QLabel,边上有个按钮,点击,跳出颜色选取的Dialog,然后选择一个颜色,这个QLabel会变成什么颜色. 2.ColorLabel 我们先把这个自定义的类写好: 头文件: #ifndef COLORLABEL_H #define COLORLABEL_H #include <QLabel> #include <QPainter> class ColorLabel : public QLabel{ Q_OBJECT pu

Qt Quick 布局介绍

在 Qt Widgets 中,我们经常使用布局管理器来管理界面上的众多 widgets .在 Qt Quick 中也有这么一套与布局管理器类似的东西,叫作 Item Positioner .我还是沿用使用 Qt widgets 编程时的叫法,称它们为布局管理器. Qt Quick 提供这么几种常用的布局方式: anchors ,锚布局 Row ,行布局 Column ,列布局 Grid ,表格布局 Flow ,流式布局 咱们一个一个来看. 请给我的参赛文章<Qt Quick 事件处理之信号与槽>

qt之旅-1纯手写Qt界面

通过手写qt代码来认识qt程序的构成,以及特性.设计一个查找对话框.下面是设计过程 1 新建一个empty qt project 2 配置pro文件 HEADERS += Find.h QT += widgets SOURCES += Find.cpp main.cpp 3 编写对话框的类 代码如下: //Find.h #ifndef FIND_H #define FIND_H #include <QDialog> class QCheckBox; class QLabel; class QL

QT之布局管理器(十九)

我们在之前的 GUI 开发中都是使用的是绝对定位,何谓绝对定位呢?就是我们直接在像素级指定各个组件的位置和大小.比如我们之前使用的 void QWidget::move(int x, int y):void QWidget::resize(int w, int h):这样存在的问题就是组件的位置和大小无法自适应父窗口的变化. 我们先来看看绝对定位的代码和效果是怎样的?头文件代码如下: #include <QWidget> #include <QPushButton> class W

CDockablePane 记忆界面布局的问题

CWinAppEx类的LoadCustomState()和SaveCustomState()用于向注册表读取和保存应用程序的界面信息,重载该方法可以取消自动记忆界面布局. void CxxxApp::LoadCustomState() {     //设置为TRUE,则自动加载界面记忆     this->m_bSaveState = FALSE; } //保存界面状态值 void CxxxApp::SaveCustomState() {     //设置为TRUE,则自动保存界面记忆     

安卓学习-界面-布局-RelativeLayout

RelativeLayout相对布局,所有内部的组件都是相对的 XML属性 XML属性 函数 说明 android:gravity setGravity 内部组件的对其方式 android:ignoreGravity setIgnoreGravity 设置哪个组件不受Gravity影响 RelativeLayout.LayoutParams用来设置内部组件的对齐方式 XML属性 说明 android:layout_centerHorizontal 水平居中 android:layout_cent

iOS界面布局的核心以及TangramKit介绍

前言 TangramKit是iOS系统下用Swift编写的第三方界面布局框架.他集成了iOS的AutoLayout和SizeClass以及Android的五大容器布局体系以及HTML/CSS中的float和flex-box的布局功能和思想,目的是为iOS开发人员提供一套功能强大.多屏幕灵活适配.简单易用的UI布局解决方案.Tangram的中文即七巧板的意思,取名的寓意表明这个布局库可以非常灵巧和简单的解决各种复杂界面布局问题.他的同胞框架:MyLayout是一套用objective-C实现的界面

ios开发UI篇—使用纯代码自定义UItableviewcell实现一个简单的微博界面布局

本文转自 :http://www.cnblogs.com/wendingding/p/3761730.html ios开发UI篇—使用纯代码自定义UItableviewcell实现一个简单的微博界面布局 一.实现效果 二.使用纯代码自定义一个tableview的步骤 1.新建一个继承自UITableViewCell的类 2.重写initWithStyle:reuseIdentifier:方法 添加所有需要显示的子控件(不需要设置子控件的数据和frame,  子控件要添加到contentView中

iOS中xib与storyboard原理,与Android界面布局的异同

用文本标记语言来进行布局,用的最多的应该是HTML语言.HTML可以理解为有一组特殊标记的XML语言. 一.iOS中xib与storyboard显示原理 在iOS中主要的布置界面的方式有3种:代码,xib,storyboard. 1. 代码 代码布置界面是万能的,但通常很复杂.布置一个简单的界面可能需要很多行代码,因此十分繁琐. 下面为创建一个按钮的代码,最少也要3行: UIButton *btn = [UIButton buttonWithType:UIButtonTypeContactAdd