добавить возможности наведения / ввода / выхода для элемента в моем QGraphicsScene

в основном я пытаюсь реализовать событие Hover на QPointF, мне нужно, чтобы оно было кликабельным или хотя бы каким-то образом выделенным.

Я попытался создать собственную точку, начав с наследования от QPointF, а затем добавив методы hover, enter и оставлять, как описано в этот урок, Но это не работает. Кроме того, это основано на общем QWidget, а не на точках.

у вас есть какие-нибудь советы / ресурсы? Google указывает на некоторые бесполезные слова, а страница Qt, относящаяся к HoverEvent, не приспособлена для примеров.

Спасибо!

РЕДАКТИРОВАТЬ

Требуется больше информации. Я пытаюсь нарисовать прямоугольник в сцене. Прямоугольник имеет тип QPolygonF и сцена QGraphicsScene тип.

ниже блока кода, используемого для создания многоугольника из списка точек и его включения в сцену:

void
MyDialog::paintEvent(QPaintEvent *event)
{
Q_UNUSED(event);
QPolygonF poly;
QPointF first;

for(int i = 0;i < points->size();i++)
{
double length = points->at(i).split(",").at(0).toDouble();
double rad = qDegreesToRadians( points->at(i).split(",").at(1).toDouble());

QPointF pt(length * qCos(rad),length * qSin(rad));
if(i == 0) first = pt;

poly << pt;
}
poly << first;scene->addPolygon(poly,QPen(),QBrush(Qt::green,Qt::SolidPattern));

}

-1

Решение

QPointF является объектом данных; он не предоставляет никакого графического представления вообще (и я настоятельно рекомендую вам не наследовать его, чтобы добавить один).

Один из возможных способов сделать это — переопределить QGraphicsScene::mouseMoveEvent() а также QGraphicsScene::mousePressEvent() функции, позволяющие прослушивать, куда пользователь перемещается и щелкает, и реагировать на это. Однако, возможно, есть лучшие способы сделать это — мне до сих пор нужно было реагировать только на нажатия (а не на зависания), поэтому мой опыт ограничен.

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]