Qt之QGridLayout布局简单应用

实现A、B、C布局;

结构如图:

Qt之QGridLayout布局简单应用

关键代码如下:

MainWindow::MainWindow(QWidget *parent) :
    QWidget(parent)
{
        this->setGeometry(QRect(0,0,1000,800));
        QGridLayout *gridLayout = new QGridLayout;
 
        QWidget *widget1 = new QWidget();
        QPushButton *A = new QPushButton("A",widget1);
        A->setGeometry(QRect(100,100,100,60));
 
        QWidget *widget2 = new QWidget();
        QPushButton *B = new QPushButton("B",widget2);
        B->setGeometry(QRect(100,100,100,60));
 
        QWidget *widget3 = new QWidget();
        QPushButton *C = new QPushButton("C",widget3);
        C->setGeometry(QRect(0,10,100,30));
 
        widget1->setMaximumWidth(300);
        widget1->setMinimumWidth(300);
 
        widget3->setMaximumHeight(40);
        widget3->setMaximumHeight(40);
        gridLayout->setMargin(0);
        int vW = width()/300;
        int vh = height()/60;
        qDebug() << vW << vh;
        gridLayout->addWidget(widget1, 0,0,5,1);
        gridLayout->addWidget(widget2, 0,1,5-1,5-1);
        gridLayout->addWidget(widget3, 5-1,1,1,5-1);
        gridLayout->setSpacing(1);
        QStringList qss;
        qss.append("QWidget{border:1px solid #000000;background:#DC2520}");
        this->setStyleSheet(qss.join(""));
        setLayout(gridLayout);
}