QT笔记-布局

1 QT中使用布局器QLayout布局

2自动计算各个空间的大小和位置 采用的既定policy策略来调整子窗口的大小和位置

3QHBoxLayout横向布局  QVBoxLayout纵向布局

  • QHBoxLayout ( QWidget * parent, int margin = 0, int spacing = -1, const char * name = 0 )
  • QHBoxLayout ( QLayout * parentLayout, int spacing = -1, const char * name = 0 )
  • QHBoxLayout ( int spacing = -1, const char * name = 0 )

  使用三部曲:(1)创建控件对象(2)创建布局器(3)使用布局器

Mywin.h

 1 #ifndef MYWIN_H
 2 #define MYWIN_H
 3
 4 #include <QWidget>
 5
 6 // 添加头文件
 7 #include <QVBoxLayout>
 8 #include <QLineEdit>
 9 #include <QPlainTextEdit>
10
11 class MyWin : public QWidget
12 {
13     Q_OBJECT
14
15 public:
16     MyWin(QWidget *parent);
17     ~MyWin();
18
19 private:
20     QLineEdit* m_lineEdit;
21     QPlainTextEdit* m_textEdit;
22
23 };
24
25 #endif // MYWIN_H

Mywin.cpp

#include "MyWin.h"

MyWin::MyWin(QWidget *parent)
    : QWidget(parent)
{
    // 创建控件对象
    m_lineEdit = new QLineEdit(this);
    m_textEdit = new QPlainTextEdit(this);

    // 创建布局器
    QVBoxLayout* layout = new QVBoxLayout(this);
    layout->addWidget(m_lineEdit); // 将第一个box添加到布局器
    layout->addWidget(m_textEdit); // 将第二个box添加到布局器

    // 使用布局器
    this->setLayout(layout);
}

MyWin::~MyWin()
{

}
时间: 2024-10-11 06:44:30

QT笔记-布局的相关文章

QT笔记:数据库总结(一)

QT笔记:数据库总结(一)http://blog.csdn.net/reborntercel/article/details/6991147 http://www.devbean.net/2013/06/qt-study-road-2-sql-model/

Qt Quick 布局介绍

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

Qt笔记——MOC(元对象编译器)

moc 全称是 Meta-Object Compiler,也就是"元对象编译器".Qt 程序在交由标准编译器编译之前,先要使用 moc 分析 C++ 源文件.如果它发现在一个头文件中包含了宏 Q_OBJECT,则会生成另外一个 C++ 源文件.这个源文件中包含了 Q_OBJECT 宏的实现代码.这个新的文件名字将会是原文件名前面加上 moc_ 构成.这个新的文件同样将进入编译系统,最终被链接到二进制代码中去.因此我们可以知道,这个新的文件不是"替换"掉旧的文件,而是

QT之布局管理器(十九)

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

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->a

QT Layout 布局的重要性

前一段时间,开始学习 QT 时,自己尝试着布局一个串口通讯的窗体. 布局完后,也在不同的电脑(笔记本和工作用台式机)上试了,都没有什么问题:布局是正常的.但是无意中,在 Surface 3 上打开此工程后,发现布局显示混乱了.具体如下的帖子中的描述:QT 5.3.1 拖出来的UI布局,为什么在不同的电脑上显示差别那么大? 按此帖子中朋友的建议,将布局了的控件进行了 Layout.由于之前没有什么过 Layout,布局的过程中也遇到了不少的问题.但最后还是布局出一个达到自己想要的效果,具体的效果如

QT笔记之模态对话框及非模态对话框

模态对话框(Modal Dialog)与非模态对话框(Modeless Dialog)的概念不是Qt所独有的,在各种不同的平台下都存在.又有叫法是称为模式对话框,无模式对话框等.所谓模态对话框就是在其没有被关闭之前,用户不能与同一个应用程序的其他窗口进行交互,直到该对话框关闭.对于非模态对话框,当被打开时,用户既可选择和该对话框进行交互,也可以选择同应用程序的其他窗口交互. 在Qt中,显示一个对话框一般有两种方式,一种是使用exec()方法,它总是以模态来显示对话框:另一种是使用show()方法

Android学习笔记-----------布局(四)

GridLayout(网格布局) 网格布局是android4.0之后出现的新布局,在使用可能会报错,需要将清单文件中的android:minSdkVersion设置为14 网格布局和LinerLayout一样具有水平方向和垂直方向两种布局方式.当控件排满后会自动换行或者换列. 使用前需要先指定rowCount(行数),columnCount(列数) 通过组件的layout_row和layout_column属性指定控件的行号和列号,这里要注意索引是从0开始的 通过组件的layout_column

QT笔记之自定义窗口拖拽移动

1.QT自定义标题栏,拖拽标题栏移动窗口(只能拖拽标题,其他位置无法拖拽) 方法一: 转载:http://blog.sina.com.cn/s/blog_4ba5b45e0102e83h.html .h文件中 1 //自己重新实现拖动操作 2 protected: 3 4 void mouseMoveEvent ( QMouseEvent * event ); 5 6 void mousePressEvent ( QMouseEvent * event ); 7 8 void mouseRele