gpt4 book ai didi

qt - 为什么设置 QLabel 的像素图不起作用?

转载 作者:行者123 更新时间:2023-12-04 12:41:41 29 4
gpt4 key购买 nike

我创建了一个 QLabel 的子类我打算在 QGraphicsView 中使用.它充当一个可移动的“点”,可以在图形 View 中单击并拖动它。

创建自定义类并将其显示在图形 View 中不是问题;然而,试图获得自定义 QLabel用我想要的图像来绘画自己并没有发生。我自定义的构造函数 QLabel类是这样的:

TrackerPoint::TrackerPoint(QWidget *parent) :
QLabel(parent)
{
this->setFixedSize( 40, 40 );
QPixmap pixmap( ":/images/target.png" );
this->setPixmap( pixmap );
this->setMask( pixmap.mask() );
}

我确保图像目录存在于运行应用程序的工作目录中。如果它完全相关,我的 QRC 文件是这样的:
<RCC>
<qresource prefix="/images">
<file>images/target.png</file>
</qresource>
</RCC>

几天来我一直在努力解决这个问题——任何关于为什么图像没有出现的想法都会很可爱。 (这与我在 QLabel 的构造函数中设置像素图有关吗?)

最佳答案

你有:

<qresource prefix="/images">
<file>images/target.png</file>
</qresource>

我认为这将导致双重 images在资源路径中,即 :/images/images/target.png .要解决这个问题,请删除 prefix="/images"或放 alias="target.png"file标签。

为了更清楚地说明错误在哪里,您可以编写代码使其使用 QPixmap::load ,因为可以检查错误:
QPixmap pixmap;
if (!pixmap.load( ":/images/target.png" )) {
qWarning("Failed to load images/target.png");
}
this->setPixmap( pixmap );

或者你可以更进一步使用 QImageReader可以给出详细的错误信息。

关于qt - 为什么设置 QLabel 的像素图不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4579363/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com