私は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を表示する方法ですが、これを行うためのより良いアプローチはありますか?