QT布局管理器问题

2025-04-29 13:39:51
推荐回答(2个)
回答1:

mainlayout本身没有放好,给你一段代码,你新建一个qt creator 普通的界面项目看看,很简单。
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);
QWidget * pWid = new QWidget(this);
QGridLayout * pLo = new QGridLayout(this);
QPushButton * pBtn001 = new QPushButton(NULL);

pBtn001->setText("btn001");
QPushButton * pBtn002 = new QPushButton(NULL);
pBtn002->setText("btn002");

QPushButton * pBtn003 = new QPushButton(NULL);
pBtn003->setText("btn003");

QMainWindow::setCentralWidget(pWid);
pWid->setLayout(pLo);
QSizePolicy spBtn(QSizePolicy::Minimum, QSizePolicy::Minimum);
spBtn.setHorizontalStretch(0);
spBtn.setVerticalStretch(0);
pBtn001->setSizePolicy(spBtn);
pBtn002->setSizePolicy(spBtn);
pBtn003->setSizePolicy(spBtn);
pLo->setColumnStretch(0,0);
pLo->setColumnStretch(1,0);
pLo->addWidget(pBtn001,0,0,1,1);
pLo->addWidget(pBtn002,0,1,2,1);
pLo->addWidget(pBtn003,1,0,1,1);

}

回答2:

//setLayout(mainLayout) 这句取消注释即可