【发布时间】:2011-06-02 12:52:39
【问题描述】:
我创建了一个QLabel 的子类,我打算在QGraphicsView 中使用它。它作为一个可移动的“点”,人们可以点击它并在图形视图中拖动。
创建自定义类并将其显示在图形视图中不是问题;但是,试图让自定义 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 的构造函数中设置像素图有关?)
【问题讨论】:
-
也许您确实通过
TrackerPoint::paintEvent覆盖了paintEvent的QLabel? -
ctor 的使用应该没问题。尽管在大多数情况下不需要子类化。您是否尝试在图形场景之外创建标签?你试过 QGraphicsPixmapItem 吗?