Qt::TestQLayout操作
前言:
本文操作均为在vs2015+QT5.9.5版本中执行
头文件:qgridlayout.h
#pragma once
#include <QtWidgets/QWidget>
#include "ui_qgridlayout.h"
class qgridlayout : public QWidget
{
Q_OBJECT
public:
qgridlayout(QWidget *parent = Q_NULLPTR);
private:
Ui::qgridlayoutClass ui;
};
UI文件:ui_qgridlayout.h
/********************************************************************************
** Form generated from reading UI file 'qgridlayout.ui'
**
** Created by: Qt User Interface Compiler version 5.9.5
**
** WARNING! All changes made in this file will be lost when recompiling UI file!
********************************************************************************/
#ifndef UI_QGRIDLAYOUT_H
#define UI_QGRIDLAYOUT_H
#include <QtCore/QVariant>
#include <QtWidgets/QAction>
#include <QtWidgets/QApplication>
#include <QtWidgets/QButtonGroup>
#include <QtWidgets/QHeaderView>
#include <QtWidgets/QWidget>
QT_BEGIN_NAMESPACE
class Ui_qgridlayoutClass
{
public:
void setupUi(QWidget *qgridlayoutClass)
{
if (qgridlayoutClass->objectName().isEmpty())
qgridlayoutClass->setObjectName(QStringLiteral("qgridlayoutClass"));
qgridlayoutClass->resize(600, 400);
retranslateUi(qgridlayoutClass);
QMetaObject::connectSlotsByName(qgridlayoutClass);
} // setupUi
void retranslateUi(QWidget *qgridlayoutClass)
{
qgridlayoutClass->setWindowTitle(QApplication::translate("qgridlayoutClass", "qgridlayout", Q_NULLPTR));
} // retranslateUi
};
namespace Ui {
class qgridlayoutClass: public Ui_qgridlayoutClass {};
} // namespace Ui
QT_END_NAMESPACE
#endif // UI_QGRIDLAYOUT_H
主函数:main.cpp
#include "qgridlayout.h"
#include <QtWidgets/QApplication>
#include <QWidget>
#include <QGridLayout>
#include <QPushButton>
//人生大建议:项目命名最好小写开头,要么驼峰命名
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
//PS:添加头文件#include <QWidget>
QWidget *win = new QWidget;
//PS:添加头文件#include <QGridLayout>
QGridLayout *gl = new QGridLayout(win);
//PS:添加头文件#include <QPushButton>
QPushButton *but10 = new QPushButton("button10");
gl->addWidget(but10, 0, 0);
//单个控件调整
QPushButton *but11 = new QPushButton("button11");
//设置最小尺寸
but11->setMinimumSize(100, 100);
//设置最大尺寸
but11->setMaximumSize(500, 500);
//设置策略
but11->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding);
gl->addWidget(but11, 0, 1);
QPushButton *but12 = new QPushButton("button12");
gl->addWidget(but12, 0, 2);
//添加第二行button
QPushButton *but20 = new QPushButton("button20");
gl->addWidget(but20, 1, 0);
QPushButton *but22 = new QPushButton("button22");
gl->addWidget(but22, 1, 2);
win->show();
/*qgridlayout w;
w.show();*/
return a.exec();
}
实现文件:qgridlayout.cpp
#include "qgridlayout.h"
qgridlayout::qgridlayout(QWidget *parent)
: QWidget(parent)
{
ui.setupUi(this);
}