我是 Qt 的新手,遇到了一个问题。我有一个 QGraphicsPixmap 项目,其中有几个子项目(矩形和椭圆),随后有一些子项目。现在我想显示 Graphicspixmap 项目的一部分,所有子项目在鼠标悬停事件中放大 QLabel。所以我所做的如下;
GraphicsPixmapItem::GraphicsPixmapItem(QPixmap pixmap):QGraphicsPixmapItem(pixmap)
{
setAcceptsHoverEvents(true);
}
void GraphicsPixmapItem::hoverMoveEvent(QGraphicsSceneHoverEvent *event)
{
QPointF p = event->pos();
QRect rect(p.x(), p.y(), 100, 100);
lb->setPixmap(pixmap().copy(rect).scaled(lb->width(),lb->height()));
lb->repaint();
QApplication::processEvents();
}
void GraphicsPixmapItem::hoverEnterEvent(QGraphicsSceneHoverEvent *event)
{
lb=new QLabel();
lb->resize(400,400);
lb->show();
}
void GraphicsPixmapItem::hoverLeaveEvent(QGraphicsSceneHoverEvent *event)
{
lb->close();
}
这是完美地缩放 Graphicspixmap 但不是子项。我的问题是如何在 QLabel 中显示 Graphicspixmap 及其子项,有没有更好的方法来做到这一点?