Я делаю программу Qt, в которой у меня есть прямоугольники, связанные проводами (размещенные пользователем с помощью событий мыши). Каждый провод проверяет, есть ли прямоугольник в его начале и в конце. Если это так, провод помещается.
Недавно я хотел изменить свои прямоугольники на горизонтальные линии (лучше визуально), поэтому я написал:
QRectF myRect(-15, 0, 30, 1);
Вместо обычного прямоугольника. Проблема в том, что теперь слишком сложно отследить мои провода, потому что пользователь должен связать 2 линии с помощью мыши, что практически невозможно.
Я пытался изменить ограничивающий прямоугольник/форму, но ни один из них не работает:
QRectF Port::boundingRect()
{
return QRectF(-15, 0, 30, 10);
}
QPainterPath Port::shape()
{
QPainterPath path;
path.addRect(-15, 0, 30, 10);
return path;
}
Я думаю, проблема в том, что ограничивающий прямоугольник и форма используются только для выбора. Я также пытался использовать изображение (отчаянное решение), но не могу найти способ добавить изображение/пиксельное изображение в свой QpainterPath.
Я знаю, что могу использовать линию вместо плоского прямоугольника, но проблема все та же.
Спасибо за помощь :)