C++ Qt小部件不显示

C++ Qt小部件不显示,c++,qt,C++,Qt,我创建了一个类,它是用于绘制图像的QWidget的子类,仅用于绘制图像,名为ImageWidget 当我只创建一个ImageWidget并调用ImageWidget.show()时,一切都很好。然后我创建另一个QWidget子类,如下所示。目前,只显示combox和滑块,图像不显示。有人能帮我一下吗 MainWindow::MainWindow(QWidget *parent) : QWidget(parent) { imgWidget=new I

我创建了一个类,它是用于绘制图像的QWidget的子类,仅用于绘制图像,名为ImageWidget

当我只创建一个ImageWidget并调用ImageWidget.show()时,一切都很好。然后我创建另一个QWidget子类,如下所示。目前,只显示combox和滑块,图像不显示。有人能帮我一下吗

    MainWindow::MainWindow(QWidget *parent) :
        QWidget(parent)
    {
        imgWidget=new ImageWidget(this);
    fractalTypeLabel=new QLabel(tr("Type"));
    typeCombo=new QComboBox();
    typeCombo->addItem(tr("One"));
    typeCombo->addItem(tr("Two"));
    scalefactorLabel=new QLabel(tr("Scale Factor"));
    scalefactorSlider=new QSlider(Qt::Horizontal);
    scalefactorSlider->setTickInterval(1);
    scalefactorSlider->setTickPosition(QSlider::TicksBelow);

    QVBoxLayout *imageLayout=new QVBoxLayout();
    imageLayout->addWidget(imgWidget);

    QGridLayout *gridLayout=new QGridLayout;
    gridLayout->addWidget(fractalTypeLabel,0,0);
    gridLayout->addWidget(typeCombo,0,1);
    gridLayout->addWidget(scalefactorLabel,1,0);
    gridLayout->addWidget(scalefactorSlider,1,1);

QHBoxLayout *mainLayout=new QHBoxLayout;
    mainLayout->addLayout(imageLayout);
    mainLayout->addLayout(gridLayout);

    this->setLayout(mainLayout);
    }

最好的祝愿,

很可能您没有从
sizeHint
报告小部件的大小,在自定义子类中实现
virtual QSize sizeHint()const
并返回一些内容。您的小部件可能会显示。在缺少
sizeHint
的情况下,系统认为小部件的大小可以是0x0,并将其从布局中删除。通过使用布局设置,还有其他方法可以解决这个问题。这有点不直观。您可能希望在from
QWidget