• 第二十三课、布局管理器(二)------------------狄泰软件学院


    一、布局管理器的比例系数

    1、默认情况下等比例的方式更新组件的大小

    2、可以自定义组件大小更新时的比例系数

    3、QBoxLayout中的比例系数设置

     

    4、注意:组件的初始化大小是独立于布局管理器设置的,因此不能保证组件的大小始终符合比例系数的设置(比如刚运行时一样大小,主窗口变大后差异才显现出来)

    二、QGridLayout布局管理器

    1、以网格(二维)的方式管理界面组件

    2、QGridLayout中的比例系数设置

    3、布局管理器的嵌套

    (1)、QGridLayout支持嵌套布局管理器成为其管理对象

    #ifndef WIDGET_H
    #define WIDGET_H
    
    #include <QtGui/QWidget>
    #include <QPushButton>
    
    class Widget : public QWidget
    {
        Q_OBJECT
    private:
        QPushButton Btn1;
        QPushButton Btn2;
        QPushButton Btn3;
        QPushButton Btn4;
    
        void QLayoutTest();
    public:
        Widget(QWidget *parent = 0);
        ~Widget();
    };
    
    #endif // WIDGET_H
    Widget.h
    #include "Widget.h"
    #include <QVBoxLayout>
    
    Widget::Widget(QWidget *parent)
        : QWidget(parent), Btn1(this), Btn2(this), Btn3(this), Btn4(this)
    {
        QLayoutTest();
    }
    
    void Widget::QLayoutTest()
    {
        Btn1.setText("Btn1");
        Btn2.setText("Btn2");
        Btn3.setText("Btn3");
        Btn4.setText("Btn4");
    
        Btn1.setSizePolicy(QSizePolicy::Expanding,QSizePolicy::Expanding);//水平和垂直都随主窗口拓宽
        Btn1.setMinimumSize(160,50);
        Btn2.setSizePolicy(QSizePolicy::Expanding,QSizePolicy::Expanding);
        Btn2.setMinimumSize(160,50);
        Btn3.setSizePolicy(QSizePolicy::Expanding,QSizePolicy::Expanding);
        Btn3.setMinimumSize(160,50);
        Btn4.setSizePolicy(QSizePolicy::Expanding,QSizePolicy::Expanding);
        Btn4.setMinimumSize(160,50);
    
        QGridLayout* layout = new QGridLayout();
        layout->addWidget(&Btn1, 0, 0);//在第0行第0列
        layout->addWidget(&Btn2, 0, 1);
        layout->addWidget(&Btn3, 1, 0);
        layout->addWidget(&Btn4, 1, 1);
    
        layout->setSpacing(10);
        layout->setRowStretch(0, 2);//第0行,两倍
    
        setLayout(layout);
    
    
    }
    
    Widget::~Widget()
    {
    
    }
    Widget.cpp
    #include <QtGui/QApplication>
    #include "Widget.h"
    
    int main(int argc, char *argv[])
    {
        QApplication a(argc, argv);
        Widget w;
        w.show();
        
        return a.exec();
    }
    main.cpp 

    三、小结

    (1)、QGridLayout网格的方式对组件进行管理

    (2)、QGridLayout中的组件可以根据需要跨越多个网络

    (3)、QBoxLayout和QGridLayout支持比例系数的概念

    (4)、比例系数决定了组件大小的相对变化

     

  • 相关阅读:
    取服务类采购订单含税单价
    ABAPALV双击界面弹出窗口
    DEMO系列
    ABAP 内表的定义,与PERFORM传值的定义
    2408419 SAP S2408419 SAP S/4HANA MultiNode Support/4HANA MultiNode Support
    Best Practice Activation on DEV S/4 system
    以太坊上交易hash和交易签名的计算
    Audit DDL 用于记录Oracle DDL事件
    最好用的截图工具,提取自QQ(带以截图搜图、ocr文字识别,截长图,贴图,色号等功能)
    如何把一张模糊照片变清晰(推荐2个工具)
  • 原文地址:https://www.cnblogs.com/gui-lin/p/6403963.html
Copyright © 2020-2023  润新知