我创建了一个类,它是用于绘制图像的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);
}
最诚挚的问候,
答案 0 :(得分:3)
最可能的是,您没有在自定义子类工具sizeHint
中virtual QSize sizeHint () const
报告小部件的大小并返回一些内容。您的小部件可能会显示。在没有sizeHint
的情况下,系统会认为您的窗口小部件的大小为0x0,并将其从布局中删除。通过使用布局设置,还有其他方法。这有点不直观......您可能希望在QWidget