元素不显示在对话框中

Elements don't show up on Dialog

我正在尝试使用 QT 实现一个对话框。这是我第一次写一个 Dialog 而不是使用设计器。这是因为此对话框将包含一些字段,这些字段将取决于某些选择是否出现。

到目前为止,我一直在遵循本指南,但将其用于我自己的领域: https://www.informit.com/articles/article.aspx?p=1405224

当我 运行 应用程序时,我的元素(LineEdit 和 Lable)不知何故没有出现在对话框中。 我不明白我真正缺少的是什么。我是否需要以某种方式将元素添加到代码对话框中?

这是我的头文件:

    #ifndef PLANETARYVIEW_H
    #define PLANETARYVIEW_H
    #include <QDialog>
    #include <QVBoxLayout>
    #include <QLabel>
    #include <QLineEdit>
    #include <QComboBox>

    class PlanetaryView : public QDialog

    {
        Q_OBJECT
    public:
        explicit PlanetaryView(QWidget *parent = nullptr);

    private:
        QVBoxLayout* PlanetsVLayout;
        QLabel* PlanetLabel;
        QLineEdit* PlanetLineEdit;
   };

   #endif // PLANETARYVIEW_H

那是我的 cpp 文件

   #include "planetaryview.h"

       PlanetaryView::PlanetaryView(QWidget *parent)
       :QDialog(parent)
  {
       PlanetsVLayout = new QVBoxLayout();

       PlanetLineEdit = new QLineEdit();
       PlanetsVLayout->addWidget(PlanetLineEdit);

       PlanetLabel = new QLabel("Planet:");
       PlanetLabel->setBuddy(PlanetLineEdit);
       PlanetsVLayout->addWidget(PlanetLabel);

  }

想法是让 Lable 和 LineEdit 在对话框中并排放置。

问题是布局没有分配给widget,解决方法是

PlanetsVLayout = new QVBoxLayout(this);

PlanetsVLayout = new QVBoxLayout();
setLayout(PlanetsVLayout);