混淆QLabel和QPixmap

Posted

技术标签:

【中文标题】混淆QLabel和QPixmap【英文标题】:Confusion QLabel and QPixmap 【发布时间】:2013-06-18 12:18:11 【问题描述】:

我想在 Qt 上将 Pixmap 显示为标签。 这就是问题所在,上面的代码没有显示我想要的图像。

如果有问题,请纠正我。我一遍又一遍地检查(即使是几行),但它没有导致结果!!!

QLabel *label;
label= new QLabel(this);
QPixmap jet("C:/images/image.jpg");
label->setPixmap(jet);

还有一个问题,好像在另一台机器上也可以!

【问题讨论】:

错误信息?你检查过QPixmap 是否为空吗? 我在构建时没有错误信息! 你的意思是图像根本不显示?从来没有,或者在某些情况下它确实有效? 如果您为标签设置文本而不是像素图,您能看到该文本吗? 是的,图像确实有效,例如当我执行以下操作时: IplImage *IMG=cvLoadImage("C:/images/image.jpg", 1); cvSaveImage("C:/aa.jpg", IMG);结论:这与图像的路径无关。 【参考方案1】:

默认情况下,qt 使用“-system-libjpeg”构建,所以sudo apt-get install libjpeg 如果你在 linux 上,要检查支持的图像格式,添加 qDebug() << QImageReader::supportedImageFormats ();

要向您的项目添加插件,请转到 QtSDK/Desktop/Qt/4.8.1/gcc/plugins 或类似的地方,选择您使用的版本,然后将“plugins”文件夹复制到项目的根目录(更准确地说- 您只需要位于插件中的“imageformats”文件夹),并在您的 main.cpp 文件中添加行 addLibraryPath (顺便说一下,插件的文件夹不仅包含用于发布的 dll,还包含用于调试的 dll,它们有点很重,所以我会删除带有 *d.dll 的 dll,例如 QtCore.dll - 用于发布,QtCored.dll - 用于调试)

QApplication a(argc, argv);
MainWindow w;
a.addLibraryPath("plugins");
w.show();

【讨论】:

它只是将插件文件夹添加到项目路径中,所以它知道在哪里寻找库(在没有 Qt 的 Windows 计算机上需要),文档 - doc.qt.digia.com/3.3/qapplication.html#addLibraryPath 我还是个新手(3 名代表),无法投票,但只是接受了您的问题作为有用的问题。

以上是关于混淆QLabel和QPixmap的主要内容,如果未能解决你的问题,请参考以下文章

对齐来自 QLabel 和 QLineEdit 的正确文本

如何将图像和文本添加到QLabel

为啥带有边框和背景图像样式的 QWidget 的行为与 QLabel、QDialog、...不同?

在QLabel上同时显示文字和图片的方法

从 QLabel 顶部移除间隙

qlabel居中