Qt 4.7.4 - Сделайте прозрачные пиксели кликабельными (разверните хитбоксы) в растровом изображении QGraphicsItem

Я создаю редактор схем, используя Qt Creator. У меня есть холст QGraphicsScene/QGraphicsView, на который я хотел бы перетаскивать изображения компонентов схемы и перемещать их.

В настоящее время я использую растровое изображение QGraphicsItem и добавляю его на холст и делаю его подвижным. Это прекрасно работает, когда вы щелкаете непосредственно по линиям символа, однако символ не перемещается при нажатии прозрачных областей на изображении.

Есть ли способ расширить область хитбокса / мыши, чтобы эти прозрачные области реагировали так же, как другие области на символе? Ниже, как я добавляю изображение. (Мне нужно прозрачное изображение, чтобы другие символы были видны позади / перед ним)

QGraphicsItem* b = canvas.addPixmap(QPixmap(":/images/ground2.gif"));
b->setFlag(QGraphicsItem::ItemIsMovable);
b->setPos(qrand()%int(canvas.width()),qrand()%int(canvas.height()));

Вся помощь очень ценится! Спасибо! мистифицировать

1 ответ

Решение

Ты можешь позвонить QGraphicsPixmapItem::setShapeMode( QGraphicsPixmapItem::BoundingRectShape ) чтобы элемент обрабатывался прямоугольником.

Другие вопросы по тегам