在Qt中,如果使用了mainwindow,然后使用布局,比如QHBoxLayoutQVBoxLayout等,编译运行会发现提示有默认的布局,然后你的布局就会不生效。
这时的解决方案就是:你在mainwindow里面new一个windget,然后将此widget设置为中心控件,之后的控件都添加在此widget里面,布局也设置在这个widget里面,这样就可以实现布局了。如以下代码:

        QWidget *cenWidget = new QWidget(this);
        setCentralWidget(cenWidget);
        
        QPushButton *bt1 = new QPushButton("bt1", cenWidget);
        QLabel *label1 = new QLabel("label1", cenWidget);
        
        QHBoxLayout *layout = new QLayout;
        layout->addWidget(bt1);
        layout->addWidget(label1);
        
        cenWidget->setLayout(layout);
Last modification:July 5, 2019
If you think my article is useful to you, please feel free to appreciate