在 Qt 中显示图像的正确方法

mFe*_*ein 5 c++ qt label image

我是 Qt 新手,我发现的几乎每个教程都说使用 setPixmap() 将图像添加到 QLabel。也许这是正确的方法,但感觉并非如此,因为为图像使用标签似乎超出了标签的目的。

谁能告诉我是否有一种“正确的方法”或一个特殊的类,或者“标签方法”是否是正确的方法,而不仅仅是简单的方法。

Fra*_*eld 5

使用 QLabel 是在基于 QtWidgets 的 UI 中显示图像的常用方法。这可能确实感觉有点尴尬,因为 QLabel 的 API 主要关注文本渲染。然而,它完成了这项工作,并且没有其他类专门致力于绘制图像。人们可以考虑编写自己的类(采用 QPixmap,重新实现 PaintEvent()、sizeHint()),但只有在需要 QLabel 缺乏的功能时,这对我才有意义。

当然还有许多其他方法来绘制图像,具体取决于上下文,例如按钮上的图像(QToolButton,QPushButton,...),图形场景中的图像(QGraphicsScene/View)等,但它们都服务于更专业的或更复杂的用例。


Wag*_*are 4

最简单的方法是使用 QLabel.in ImageViewer 示例 http://qt-project.org/doc/qt-4.8/widgets-imageviewer.html他们使用 QLabel ..

其他方式

QGraphicsView view(&scene);
    QGraphicsPixmapItem item(QPixmap("c:\\test.png"));
    scene.addItem(&item);
Run Code Online (Sandbox Code Playgroud)