QT QHBoxLayout horizontal layout control

        This article introduces various operations of the QHBoxLayout control in detail, such as: new interface, add control, layout control, display control, add blank line, set spacing, add spacing, set position, set outer margin, set margin, add fixed width , direction up, direction down, direction left, direction right, etc., style sheets and other operations.

        In actual development, an interface may contain more than a dozen controls, and manually adjusting their positions is time-consuming and laborious. The layout manager can do two things: automatically adjust the position of the controls, including the spacing between controls, alignment, etc.; when the user resizes the window, the controls located in the layout manager will also be resized accordingly, thus maintaining the entire interface beautiful.
        There are currently 23 articles in this series of QT comprehensive and detailed articles. This series of articles describes the basic operation and use of QT controls in more detail. Thank you for your attention, likes, and collections.
 

 The author of this article is original, please attach the source of the article and the link of this article for reprinting.

QT QHBoxLayout horizontal layout control directory

1 New interface

2 Control Layout

3 display controls

4 Add fixed width

5 Add blank lines

6 Set spacing

7 Add spacing

8 Set position

9 Set margins

10 Set margins

11 directions up

12 directions down

13 direction left

14 direction right

15 other articles


1 New interface

2 Control Layout

    QPushButton* pushButton1;
    QPushButton* pushButton2;
    QPushButton* pushButton3;
    QPushButton* pushButton4;
    QHBoxLayout *pHayout;

    pHayout = new QHBoxLayout();//水平布局

    pushButton1 = new QPushButton();        pushButton1->setText("pushButton_1");
    pushButton2 = new QPushButton();        pushButton2->setText("pushButton_2");
    pushButton3 = new QPushButton();        pushButton3->setText("pushButton_3");
    pushButton4 = new QPushButton();        pushButton4->setText("pushButton_4");

3 display controls

    //向布局管理器中添加指定的 widget 控件。
    pHayout->addWidget(pushButton1);
    pHayout->addWidget(pushButton2);
    pHayout->addWidget(pushButton3);
    pHayout->addWidget(pushButton4);

    ui->widget->setLayout(pHayout);

4 Add fixed width

    //向布局管理器中添加指定的 widget 控件。
    pHayout->addWidget(pushButton1);
    pHayout->addWidget(pushButton2);
    pHayout->addSpacing(50);
    pHayout->addWidget(pushButton3);
    pHayout->addWidget(pushButton4);
    ui->widget->setLayout(pHayout);

5 Add blank lines

    //添加一个空白行,整个窗口中除了控件占用的区域外,其它区域可以由多个(≥0)空白行分摊,分摊比例取余于各个空白行设置的 stretch 参数的值。
    //strech 参数的默认值为 0,表示当窗口很小时,空白行可以不占据窗口空间。当窗口中包含多个 strech 值为 0 的空白行时,它们会平分窗口中的空白区域。
    pHayout->addStretch();

    //向布局管理器中添加指定的 widget 控件。
    pHayout->addWidget(pushButton1);
    pHayout->addWidget(pushButton2);
    pHayout->addWidget(pushButton3);
    pHayout->addWidget(pushButton4);

    ui->widget->setLayout(pHayout);

6 Set spacing

void MainWindow::on_pushButton_4_clicked()
{

    pHayout->setSpacing(150);
}

7 Add spacing

void MainWindow::on_pushButton_5_clicked()
{
    pHayout->addStretch(50);

    pHayout->addWidget(pushButton1);
    pHayout->addWidget(pushButton2);

    pHayout->addStretch(150);
    pHayout->addWidget(pushButton3);

    pHayout->addStretch(10);
    pHayout->addWidget(pushButton4);

    ui->widget->setLayout(pHayout);
}

8 Set position

void MainWindow::on_pushButton_6_clicked()
{
    //水平居左,垂直居上
    pHayout->addWidget(pushButton1,0,Qt::AlignLeft | Qt::AlignTop);
    //居右,居下
    pHayout->addWidget(pushButton2,0,Qt::AlignRight | Qt::AlignBottom);
    //居中
    pHayout->addWidget(pushButton3,0,Qt::AlignCenter );

    pHayout->addWidget(pushButton4);
}

9 Set margins

void MainWindow::on_pushButton_7_clicked()
{
    pHayout->addWidget(pushButton1);
    pHayout->addWidget(pushButton2);
    pHayout->addWidget(pushButton3);
    pHayout->addWidget(pushButton4);

    ui->widget->setLayout(pHayout);


    //    QMargins margins;
    //    margins.left();
    //    pLayout->setContentsMargins(margins);

    //与setMargin功能相同,但是可以将左、上、右、下的外边距设置为不同的值
    pHayout->setContentsMargins(10, 100, 10, 100 );

}

10 Set margins

void MainWindow::on_pushButton_8_clicked()
{
    pHayout->setMargin(100);
    pHayout->addWidget(pushButton1);
    pHayout->addWidget(pushButton2);
    pHayout->addWidget(pushButton3);
    pHayout->addWidget(pushButton4);
    ui->widget->setLayout(pHayout);
}

11 directions up

void MainWindow::on_pushButton_9_clicked()
{
    pHayout->setDirection(QBoxLayout::BottomToTop); //设置布局方向
    this->setLayout(pHayout);
}

12 directions down

void MainWindow::on_pushButton_10_clicked()
{
    pHayout->setDirection(QBoxLayout::TopToBottom);
    this->setLayout(pHayout);
}

13 direction left

void MainWindow::on_pushButton_11_clicked()
{
    pHayout->setDirection(QBoxLayout::LeftToRight);
    this->setLayout(pHayout);
}

14 direction right

void MainWindow::on_pushButton_12_clicked()
{
    pHayout->setDirection(QBoxLayout::RightToLeft);
    this->setLayout(pHayout);
}

15 other articles

QT TextEdit Control_Gemini Breakpoint Blog-CSDN Blog_qt textedit

Detailed explanation of the use of QT QComboBox - Gemini Breakpoint Blog - CSDN Blog

Detailed explanation of QT QtableView operation

Qt QStandardItemModel (1. Super detailed usage)_ Gemini Breakpoint Blog-CSDN Blog_qstandardmodel

Qt QStandardItemModel (2. Super detailed function)_Gemini breakpoint blog-CSDN blog_qstandarditemmodel click event

Detailed use of QT QRadioButton - Gemini Breakpoint Blog - CSDN Blog - qt radiobutton

Detailed use of QT QLineEdit_ Gemini Breakpoint Blog-CSDN Blog_qt qlineedit

Detailed explanation of Qt QMessageBox use - Gemini Breakpoint Blog - CSDN Blog - qt message

QChart Line Chart, Pie Chart, Bar Chart, Curve Chart_ Gemini Breakpoint Blog-CSDN Blog_qchart Style

Detailed explanation of QChart properties_ Gemini Breakpoint Blog-CSDN Blog_setanimationoptions

Use of QCharts QValueAxis_Gemini Breakpoint Blog-CSDN Blog_qvalueaxis

Qt 5 wait prompt box (open source dynamic graph)_ Gemini Breakpoint Blog-CSDN Blog_qt wait dialog box

QtDataVisualization Data 3D Visualization_Gemini Breakpoint Blog-CSDN Blog_qtdatavisualizatio

Detailed explanation of the use of QT QSpinBox integer counter control - Gemini Breakpoint Blog - CSDN Blog


QT QDoubleSpinBox floating-point counter control (detailed use)_Gemini Breakpoint Blog-CSDN Blog_qdoublespinbox Signal Slot


QT QSlider, QHorizontalSlider, QVerticalSlider control use detailed explanation_ Gemini Breakpoint Blog-CSDN Blog_qslider setting step size

Detailed explanation of the use of QT QTabWidget control - Gemini Breakpoint Blog - CSDN Blog

Detailed Explanation of QT QCalendarWidget Control_Gemini Breakpoint Blog-
CSDN Blog

(1 message) QT QVBoxLayout vertical layout control_ Gemini Breakpoint Blog-CSDN Blog

Guess you like

Origin blog.csdn.net/qq_37529913/article/details/130437567