我正在做一个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的方法。
我知道我可以使用一条线而不是一个扁平的矩形,但问题仍然是一样的。
感谢您帮助我:)
答案 0 :(得分:0)
QPainterPath
作为检查矩形以QPointF
(两分)
使用bool QPainterPath::contains(const QPointF & point)
检查电线是否在QPainterPath
范围内(两次检查电线的起点和终点)
或者在拖放线图像的情况下
QPainterPath
作为检查矩形QRect
QPixMap::rect()
bool QPainterPath::contains(const QRectF & rectangle)
检查电汇是否在QPainterPath