18

我正在尝试在我的主窗口中设置我的布局(使用setLayout())。它在启动时不显示任何内容:

class MainWindow : public QMainWindow
{
    Q_OBJECT

public:
    explicit MainWindow(QWidget *parent = 0)
    {
        QVBoxLayout *vBoxLayout = new QVBoxLayout;
        {
            QPushButton *pushButton = new QPushButton(tr("A button"));
            vBoxLayout->addWidget(pushButton);
        }
        setLayout(vBoxLayout);
    }
};
4

1 回答 1

35

您需要将最后两行代码更改为以下内容:

QWidget *widget = new QWidget();
widget->setLayout(VBoxLayout);
setCentralWidget(widget);
//VBoxLayout->addWidget(new QLayout);
//setLayout(VBoxLayout);

QMainWindow一个特例。您可以通过将布局放在一个新的布局中QWidget,然后将其设置为中央小部件来设置此小部件的内容。
另请参阅答案。

于 2013-07-11T16:05:10.550 回答