首页 > 其他分享 >Qt图形视图框架--精确选中连接线

Qt图形视图框架--精确选中连接线

时间:2022-10-29 16:04:16浏览次数:66  
标签:连接线 Qt stroker 视图 Arrow QPainterPath path


一、前言

在使用Qt图形视图框架进行组态软件开发过程中,我通过继承自QGraphicsPathItem自定义的连接线图元Arrow,发现点选连接线特别不灵敏;

class Arrow : public QGraphicsPathItem {
public:
enum { Type = UserType + TYPE_ARROW };
}

解决方案:重写​​QPainterPath shape() const​​函数


二、效果展示

Qt图形视图框架--精确选中连接线_组态软件


三、具体代码

我的连接线是由多个连接点组成的折线,首先形成折线路径,然后使用路径填充,扩大填充宽度,生成填充路径并返回;

QPainterPath Arrow::shape() const
{
QPainterPath path(*points[0]);
for(int i=1; i<points.length(); i++) {
path.lineTo(*points[i]);
}
QPainterPathStroker stroker;
stroker.setWidth(50); //通过设置宽度来扩大选择的范围
stroker.setJoinStyle(Qt::MiterJoin);
stroker.setCapStyle(Qt::RoundCap);
stroker.setDashPattern(Qt::DashLine);
return stroker.createStroke(path);
}


标签:连接线,Qt,stroker,视图,Arrow,QPainterPath,path
From: https://blog.51cto.com/wangjichuan/5806214

相关文章

  • Qt图形视图框架--图元总结
    文章目录​​一、基类QGraphicsItem​​​​二、内部图元​​​​2.1、椭圆图元--QGraphicsEllipseItem​​​​2.2、线段图元--QGraphicsLineItem​​​​2.3、路径图元--Q......
  • Qt之悬浮球菜单
    目录一、概述二、效果展示三、实现代码1、菜单项2、悬浮球3、关键点四、相关文章原文链接:Qt之悬浮球菜单一、概述最近想做一个炫酷的悬浮式菜单,考虑到菜单展开和美观,所......
  • springboot像springnvc那样访问视图
    1.SpringBoot访问静态资源的位置(优先级按以下顺序)classpath默认就是resources,所以classpath:/static/就是resources/static/classpath:/META‐INF/resources/cl......
  • 工业网关BL110实现西门子S7-400 PLC 接入金鸽MQTT云平台
    LAN接口的配置COM口采集西门子S7-400PLC的配置工业智能网关BL110一共有一个LAN接口,一个WAN接口,可以通过LAN接口采集数据,通过WAN接口接入局域网,设置过程不一样,WAN接口可......
  • 工业网关BL110实现西门子S7-1200 PLC接入MQTT Client One云平台
    LAN接口的配置COM口采集西门子S7-1200PLC的配置工业智能网关BL110一共有一个LAN接口,一个WAN接口,可以通过LAN接口采集数据,通过WAN接口接入局域网,设置过程不一样,WAN接口......
  • QT设置窗口图标
    点击项目,添加新文件选择Qt,选择qtresourcefile点击choose,填写Filename文件名点击下一步,添加到项目,添加到版本控制系统Git,点击完成添加前缀AddPrefix点击添加AddFiles,图......
  • 第一次数据库实验代码整理-表与视图的基础操作
    一、 实验环境1. Windows2000或以上版本;2. SQLServer2005或以上版本。二、 实验目的1. 掌握数据库表与视图的基础知识;2. 掌握创建、修改、使用、删除表与视图的不......
  • QTableWidget设置列宽行高大小的几种方式
    列宽、行高自动分配//列宽自动分配tableWidget.horizontalHeader().sectionResizeMode(QHeaderView::Stretch)//行高自动分配tableWidget.verticalHeader().Section......
  • day21 单列索引与组合索引 & 索引的优点和使用原则 & 视图与函数
    索引1.索引有几种四种,单列索引,组合索引,全文索引,空间索引2.索引的优点所有的MySQL数据库列类型都可以被索引,也就是可以给任意字段加索引提高数据查询速度索引的缺点1......
  • Qt中全局变量的定义和使用
    全局变量的定义 现在需要将自定义的STRParameter变量定义为全局变量,就需要新建两个文件,分别命名为"global.h"和"global.cpp" 在global.h文件中对全局变量进......