Qt小部件未显示

3

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

当我仅创建一个ImageWidget并调用ImageWidget.show()时,一切正常。接下来我创建了另一个QWidget子类,如下所示。目前,只显示组合框和滑动条,图像没有显示。有人能帮助我解决吗?

    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);
    }

最好的问候,
1个回答

3

您的小部件可能没有从 sizeHint 报告大小,在自定义子类中实现 virtual QSize sizeHint () const 并返回一些内容。这样可以使您的小部件显示出来。如果没有 sizeHint,系统会认为您的小部件可以是0x0的大小,并将其从布局中删除。通过调整布局设置可以解决此问题。这有点不直观...。您可能希望从 QWidget 实现其他与大小相关的函数。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接