当前位置: 首页 > news >正文

Qt QGraphicsScene 的用法

背景,为什么要写这篇博客

今天学习 model - view 模式的时候还看到有 scene - view 模式。不知道还有这个模式,所以学习了下。
学习后总体的感觉是:其实没有也是可以的,但有了方便许多。

从两种画图的方法开始说

以前有个项目也是需要绘图的,但我没有用到 scene 呀?于是我回去看了下,发现确实是可以不用。但用了也没有问题。
我们以绘制边为例子,看看两种写法如何

1. 不用 scene

	QPainter painter(this);// 画边painter.setPen(m_pSystem->GetEdgePen());QVector<CEdge>::const_iterator  cite = m_pGraph->m_EdgeVec.constBegin();while (cite != m_pGraph->m_EdgeVec.constEnd()){painter.drawLine(QLineF(QPoint(m_dStartX + cite->m_Node1.m_dNodePosX * m_dScale,m_dStartY + cite->m_Node1.m_dNodePosY * m_dScale),QPointF(m_dStartX + cite->m_Node2.m_dNodePosX * m_dScale,m_dStartY + cite->m_Node2.m_dNodePosY * m_dScale)));cite++;}

可以发现,其实完全可以用画笔类:QPainter 的方法 drawLine 绘制。

2. 用 sence

    // 创建图形场景QGraphicsScene scene;// 添加一个矩形QGraphicsRectItem *rectItem = scene.addRect(0, 0, 100, 100, QPen(Qt::black), QBrush(Qt::cyan));// 创建 QGraphicsViewQGraphicsView view(&scene);

可以发现,绘制变得更加方便。(一行代码绘制矩形)

相关文章:

  • 分享国产AI工作流集成数据库完成业务处理
  • 常见工业汽车行业通讯接口一览表
  • 珠江桥牌闪耀第137届广交会,展现中国味道与创新活力
  • 【Redis】Hash哈希
  • YOLO旋转目标检测之ONNX模型推理
  • 基于SpringBoot+Vue实现的电影推荐平台功能一
  • 通过组策略使能长路径
  • re题(52)BUUCTF-[FlareOn5]Minesweeper Championship Registration
  • 数据结构学习笔记
  • 【Linux】PetaLinux开发
  • Python虚假新闻检测识别
  • 用定时器做微妙延时注意事项
  • 第N8周:使用Word2vec实现文本分类
  • cPanel 的 Let’s Encrypt™ 插件
  • 【AI论文】WebThinker:赋予大型推理模型深度研究能力
  • 走进AI的奇妙世界:探索历史、革命与未来机遇
  • DeepSeek实战--AI技术架构(持续更新)
  • 数字智慧方案6187丨智慧应急指挥平台体系建设方案(78页PPT)(文末有下载方式)
  • 单词规律(简单)
  • B站Michale_ee——ESP32_IDF SDK——FreeRTOS_4信号量、互斥量
  • AI把野史当信史?警惕公共认知的滑坡
  • “三桶油”一季度净赚966亿元:业绩分化加剧,有人欢喜有人愁
  • 戴上XR头盔,五一假期在上海也能体验“登陆月球”
  • 讲座|为什么要不断地翻译叶芝的诗?它们为什么值得细读?
  • 辽宁辽阳火灾3名伤者无生命危险
  • 澎湃读报丨解放日报9个版聚焦:上海,加快建成具有全球影响力的科技创新高地