【问题标题】:Displaying a QGridLayout from within a QMainWindow从 QMainWindow 中显示 QGridLayout
【发布时间】:2014-07-16 00:30:20
【问题描述】:

我尝试在 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);
}

如果我运行它,我看到的只是三个按钮相互重叠......

【问题讨论】:

    标签: c++ object user-interface layout qt4


    【解决方案1】:

    你需要使用 Central Widget,因为 QMainWindow 是整个窗口(包含状态栏、菜单栏等):

    MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent) {
        this->setCentralWidget (new QWidget (this)) ;
        this->centralWidget()->setLayout(new QGridLayout());
    }
    

    【讨论】:

    • 感谢 Holt 你拯救了这一天!
    猜你喜欢
    • 2011-04-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-07-01
    • 1970-01-01
    • 2020-12-29
    • 1970-01-01
    相关资源
    最近更新 更多