Qt边界矩形/形状的项目交互
Qt bounding rect / shape for item interaction
我正在做一个Qt程序,我有矩形与电线连接(由用户放置鼠标事件)。每根电线检查是否有一个矩形在它的开始和结束。如果是,则电线已放置。
我最近想把我的矩形变成水平线(更好的视觉效果),所以我写:
QRectF myRect(-15, 0, 30, 1);
而不是常规的rect,问题是现在很难跟踪我的连线,因为用户必须用鼠标连接两行,这几乎是不可能的。
我试图改变边界矩形/形状,但没有一个工作:
QRectF Port::boundingRect()
{
return QRectF(-15, 0, 30, 10);
}
QPainterPath Port::shape()
{
QPainterPath path;
path.addRect(-15, 0, 30, 10);
return path;
}
我认为问题在于边界矩形&形状仅用于选择。我也尝试过使用图像(绝望的解决方案),但我找不到一种方法来添加图像/像素图到我的QpainterPath。
我知道我可以用直线代替平面矩形,但是问题还是一样的。
谢谢你的帮助
- 使用
QPainterPath
作为复选框,正如你所提到的 -
得到
QPointF
中导线的终点(两点) -
使用
bool QPainterPath::contains(const QPointF & point)
检查导线是否在QPainterPath
内(两次检查导线的起点和终点)
或者在拖放有线图像的情况下,
- 使用
QPainterPath
作为复选矩形 - 如果wire是一个图像,使用
QPixMap::rect()
获取wire的QRect
- 使用
bool QPainterPath::contains(const QRectF & rectangle)
检查线路是否在QPainterPath
相关文章:
- 使用C++库在Android项目中修改gradle中的cmake参数,用于插入指令的测试
- 无法在 CLion 中构建 C++ 项目
- 运行同一解决方案的另一个项目的项目
- Qt VTK交互风格的信号到小部件
- CMake-按正确顺序将项目与C运行时对象文件链接
- 如何在选项卡视图Qt中设置一个新项目,并保存以前的项目
- 欧拉项目#8答案是大以获得有效答案
- 从链接列表c++中删除一个项目
- CMake项目Boost库错误:Boost/config/compiler/gcc.hpp:165:10:致命错误:cs
- 既然存在危险,为什么项目要使用-I include开关
- cmake在我的项目中所需的所有静态库都不成功
- QT通过C++添加映射QML项目
- 我的项目不会像"undefined reference to `grpc::g_core_codegen_interface'"那样使用未定义的引用错误进行编译
- 在linux上调试巨大的C++项目
- 在其他文件中创建类时在 c++ 项目中不起作用
- 使外部项目可用于find_package CMake
- 在子目录中使用target_sources()命令时用于单元测试(qtest)的项目结构
- 将 qml 项目值传递给 cpp 后如何与它们进行交互?
- 如何以正确的方式处理c# - c++项目交互
- Qt边界矩形/形状的项目交互