Qt边界矩形/形状用于项交互

3

我正在开发一个Qt程序,其中用户使用鼠标事件放置与电线相连的矩形。每条电线都会检查其起点和终点是否有矩形。如果是这样,则电线被放置。

最近,我想将我的矩形改为水平线(更好的视觉效果),因此我写了以下代码:

QRectF myRect(-15, 0, 30, 1);

与普通的矩形不同,问题在于现在很难追踪我的线路,因为用户必须使用鼠标连接两条线路,这几乎是不可能的。

我尝试改变边界矩形/形状,但它们都不起作用:

QRectF Port::boundingRect()
{
    return QRectF(-15, 0, 30, 10);
}

QPainterPath Port::shape()
{
    QPainterPath path;
    path.addRect(-15, 0, 30, 10);
    return path;
}

我认为问题在于边界矩形和形状只用于选择。 我还尝试使用图像(绝望的解决方案),但我找不到一种方法将图像/像素图添加到我的QpainterPath中。
我知道我可以使用线条而不是平面矩形,但问题仍然存在。
感谢您的帮助 :)
1个回答

0
  1. 按照您所提到的,使用QPainterPath来绘制复选框。
  2. 获取线的端点坐标QPointF(两个点)

  3. 使用bool QPainterPath::contains(const QPointF & point)检查线是否在QPainterPath内(对于线的起点和终点分别进行两次检查)

如果是拖放的线图像,则:

  1. 使用QPainterPath来绘制检查矩形
  2. 如果线是一个图像,则使用QPixMap::rect()获取线的QRect
  3. 使用bool QPainterPath::contains(const QRectF & rectangle)检查线是否在QPainterPath

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接