在QT中单击按钮时如何创建新窗口?

时间:2014-11-09 05:17:56

标签: qt

我想创建一个新窗口并在其中显示QImage。

void Demo::on_pushButton_clicked()
{
    //create and show new window that displays a QImage
}

是否可以在新窗口中使用QPixmap来显示我的QImage?

1 个答案:

答案 0 :(得分:1)

最简单的方法。

QLabel *l = new QLabel;
l->setPixmap(QPixmap::fromImage(QImage("path")));
l->setAttribute(Qt::WA_DeleteOnClose);
l->show();

如果您使用QImage,则首先应将其转换为QPixmapQPixmap使用特殊的静态方法执行此操作:fromImage

http://qt-project.org/doc/qt-4.8/qpixmap.html#fromImage

我也在这里使用Qt::WA_DeleteOnClose。它是什么?它是特殊属性,当有人关闭标签时,此属性Qt会自动删除标签。我们需要这个,因为我们没有将父设置为QLabel所以我们可以获得内存泄漏,但是使用此属性一切都会好的。 您也可以自己setGeometry()标记。