我试图从 QMainWindow 中设置 QGridLayout。据我所知,这段代码看起来有效,但它不起作用。这能做到吗?
MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent)
{
QGridLayout *layout = new QGridLayout;
this->setLayout(layout);
QPushButton *box1 = new QPushButton(this);
QPushButton *box2 = new QPushButton(this);
QPushButton *box3 = new QPushButton(this);
layout->addWidget(box1, 0, 0);
layout->addWidget(box2, 1, 0);
layout->addWidget(box3, 2, 0);
}
如果我运行它,我所看到的只是三个按钮在彼此之上......
最佳答案
需要使用Central Widget,因为QMainWindow是整个窗口(包含状态栏、菜单栏等):
MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent) {
this->setCentralWidget (new QWidget (this)) ;
this->centralWidget()->setLayout(new QGridLayout());
}
关于c++ - 在 QMainWindow 中显示 QGridLayout,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23883571/