mainwindow.h
#ifndef MAINWINDOW_H
#define MAINWINDOW_H
#include <QMainWindow>
QT_BEGIN_NAMESPACE
namespace Ui { class MainWindow; }
QT_END_NAMESPACE
class MainWindow : public QMainWindow
{
Q_OBJECT
public: MainWindow(QWidget *parent = nullptr);
~MainWindow();
private: Ui::MainWindow *ui;
};
#endif // MAINWINDOW_H
mainwindow.cpp
#include "mainwindow.h"
#include "ui_mainwindow.h"
#include <QGridLayout>
#include <QLabel>
void test1(QGridLayout * main_layout, QLabel * lbl1, QLabel * lbl2, QLabel * lbl3);
void test2(QGridLayout * main_layout, QLabel * lbl1, QLabel * lbl2, QLabel * lbl3);
void test3(QGridLayout * main_layout, QLabel * lbl1, QLabel * lbl2, QLabel * lbl3);
void test4(QGridLayout * main_layout, QLabel * lbl1, QLabel * lbl2, QLabel * lbl3);
void test5(QGridLayout * main_layout, QLabel * lbl1, QLabel * lbl2, QLabel * lbl3);
MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent) , ui(new Ui::MainWindow)
{
ui->setupUi(this);
QGridLayout * main_layout = new QGridLayout;
ui->centralwidget->setLayout(main_layout);
QLabel * lbl1 = new QLabel("lbl1");
QLabel * lbl2 = new QLabel("lbl2");
QLabel * lbl3 = new QLabel("lbl3");
lbl1->setStyleSheet("background-color:green");
lbl2->setStyleSheet("background-color:green");
lbl3->setStyleSheet("background-color:green");
// 글자 가운데 정렬
lbl1->setAlignment(Qt::AlignCenter);
lbl2->setAlignment(Qt::AlignCenter);
lbl3->setAlignment(Qt::AlignCenter);
// test1(main_layout, lbl1, lbl2, lbl3);
// test2(main_layout, lbl1, lbl2, lbl3);
// test3(main_layout, lbl1, lbl2, lbl3);
// test4(main_layout, lbl1, lbl2, lbl3);
test5(main_layout, lbl1, lbl2, lbl3); }
void test1(QGridLayout * main_layout, QLabel * lbl1, QLabel * lbl2, QLabel * lbl3)
{
main_layout->addWidget(lbl1);
main_layout->addWidget(lbl2);
main_layout->addWidget(lbl3);
}
void test2(QGridLayout * main_layout, QLabel * lbl1, QLabel * lbl2, QLabel * lbl3)
{
main_layout->addWidget(lbl1, 0, 0);
main_layout->addWidget(lbl2, 1, 0);
main_layout->addWidget(lbl3, 2, 0);
}
void test3(QGridLayout * main_layout, QLabel * lbl1, QLabel * lbl2, QLabel * lbl3)
{
main_layout->addWidget(lbl1, 0, 0);
main_layout->addWidget(lbl2, 0, 1);
main_layout->addWidget(lbl3, 0, 2);
}
void test4(QGridLayout * main_layout, QLabel * lbl1, QLabel * lbl2, QLabel * lbl3)
{
main_layout->addWidget(lbl1, 0, 0);
main_layout->addWidget(lbl2, 1, 1);
main_layout->addWidget(lbl3, 2, 2);
}
void test5(QGridLayout * main_layout, QLabel * lbl1, QLabel * lbl2, QLabel * lbl3)
{
main_layout->addWidget(lbl1, 0, 0);
main_layout->addWidget(lbl2, 0, 1);
main_layout->addWidget(lbl3, 1, 1);
}
MainWindow::~MainWindow() { delete ui; }
예제 1)
void test1(QGridLayout * main_layout, QLabel * lbl1, QLabel * lbl2, QLabel * lbl3)
{
main_layout->addWidget(lbl1);
main_layout->addWidget(lbl2);
main_layout->addWidget(lbl3);
}
// 따로 위치 지정을 하지 않고 위젯 추가 시 세로 순으로 위젯이 추가 됨.
예제 2)
void test2(QGridLayout * main_layout, QLabel * lbl1, QLabel * lbl2, QLabel * lbl3)
{
main_layout->addWidget(lbl1, 0, 0);
main_layout->addWidget(lbl2, 1, 0);
main_layout->addWidget(lbl3, 2, 0);
}
// 위치 지정
(0, 0) |
(1, 0) |
(2, 0) |
예제 3)
void test3(QGridLayout * main_layout, QLabel * lbl1, QLabel * lbl2, QLabel * lbl3)
{
main_layout->addWidget(lbl1, 0, 0);
main_layout->addWidget(lbl2, 0, 1);
main_layout->addWidget(lbl3, 0, 2);
}
// 위치 지정
(0, 0) | (0, 1) | (0, 2) |
예제 4)
void test4(QGridLayout * main_layout, QLabel * lbl1, QLabel * lbl2, QLabel * lbl3)
{
main_layout->addWidget(lbl1, 0, 0);
main_layout->addWidget(lbl2, 1, 1);
main_layout->addWidget(lbl3, 2, 2);
}
// 위치 지정
(0, 0) | ||
(1, 1) | ||
(2, 2) |
예제 5)
void test5(QGridLayout * main_layout, QLabel * lbl1, QLabel * lbl2, QLabel * lbl3)
{
main_layout->addWidget(lbl1, 0, 0);
main_layout->addWidget(lbl2, 0, 1);
main_layout->addWidget(lbl3, 1, 1);
}
// 위치 지정
(0, 0) | (0, 1) |
(1, 1) |