在Qt中,如果使用了mainwindow,然后使用布局,比如QHBoxLayout,QVBoxLayout等,编译运行会发现提示有默认的布局,然后你的布局就会不生效。
这时的解决方案就是:你在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);