C++ Qt小部件不显示
我创建了一个类,它是用于绘制图像的QWidget的子类,仅用于绘制图像,名为ImageWidget 当我只创建一个ImageWidget并调用ImageWidget.show()时,一切都很好。然后我创建另一个QWidget子类,如下所示。目前,只显示combox和滑块,图像不显示。有人能帮我一下吗C++ Qt小部件不显示,c++,qt,C++,Qt,我创建了一个类,它是用于绘制图像的QWidget的子类,仅用于绘制图像,名为ImageWidget 当我只创建一个ImageWidget并调用ImageWidget.show()时,一切都很好。然后我创建另一个QWidget子类,如下所示。目前,只显示combox和滑块,图像不显示。有人能帮我一下吗 MainWindow::MainWindow(QWidget *parent) : QWidget(parent) { imgWidget=new I
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,并将其从布局中删除。通过使用布局设置,还有其他方法可以解决这个问题。这有点不直观。您可能希望在fromQWidget