mdiArea->addSubWindow(showImageLabel)导致程序崩溃
我在主窗口QMainWindow下又定义了一个QMainWindow类型的子窗口,并将mdiArea设为该子窗口的中央窗口
然后在使用mdiArea->addSubWindow(showImageLabel)这行代码时就导致程序崩溃,
初学QT,请各位帮帮忙啊,感激不尽。
代码如下:
void ImageViewWidget::imageDisplay(QString currentItemFileName)
{
QLabel *showImageLabel = new QLabel;
showImageLabel->setPixmap(QPixmap(currentItemFileName));
QMdiSubWindow *subWindow = new QMdiSubWindow;
subWindow->setWidget(showImageLabel);
mdiArea->addSubWindow(showImageLabel);///////此处导致程序崩溃
showImageLabel->show();
}
[解决办法]
mdiArea是神马东西?
判断一下mdiArea是否为空吧。。。
if(mdiArea)
{
return;
}
或者断点看一下里面是不是有值。。。。
[解决办法]
mdiArea->addSubWindow(subWindow);
[解决办法]
void ImageViewWidget::imageDisplay(QString currentItemFileName)
{
QLabel *showImageLabel = new QLabel;
showImageLabel->setPixmap(QPixmap(currentItemFileName));
QMdiSubWindow *subWindow = new QMdiSubWindow;
subWindow->setWidget(showImageLabel);
mdiArea->addSubWindow(showImageLabel);///////此处导致程序崩溃
上面的应该将showImageLabel替换为subWindow
showImageLabel->show();
上面的应该是:subWindow->show();
}