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

QT中绘制点阵

1.QGraphicsScene,QGraphicsView,QGraphicsItem机制

#include <QApplication>
#include <QGraphicsView>
#include <QGraphicsScene>
#include <QGraphicsEllipseItem>int main(int argc, char *argv[])
{QApplication app(argc, argv);QGraphicsScene scene;QGraphicsView view(&scene);view.setWindowTitle("Point Grid");view.setGeometry(100, 100, 500, 500);int gridSize = 10;int gridSpacing = 20;for (int i = 0; i < view.width(); i += gridSpacing) {for (int j = 0; j < view.height(); j += gridSpacing) {QGraphicsEllipseItem *point = new QGraphicsEllipseItem(i, j, gridSize, gridSize);point->setBrush(Qt::black);scene.addItem(point);}}view.show();return app.exec();
}

    在这个示例中,我们创建了一个 QGraphicsView 和一个 QGraphicsScene,并在 QGraphicsScene 中绘制了一个简单的点阵。每个点的大小为 10x10 像素,间距为 20 像素。最后,我们显示了 QGraphicsView,展示了绘制的点阵。

2. QPainter机制

#include <QApplication>
#include <QGraphicsView>
#include <QGraphicsScene>
#include <QPainter>int main(int argc, char *argv[])
{QApplication app(argc, argv);QGraphicsScene scene;QGraphicsView view(&scene);view.setWindowTitle("Point Grid");view.setGeometry(100, 100, 500, 500);QPainter painter;painter.begin(&view);int pointSize = 10;int gridSpacing = 20;for (int i = 0; i < view.width(); i += gridSpacing) {for (int j = 0; j < view.height(); j += gridSpacing) {painter.setBrush(Qt::black);painter.drawEllipse(i, j, pointSize, pointSize);}}painter.end();view.show();return app.exec();
}

    我们使用 QPainter 的 drawEllipse方法来绘制点。如果想绘制矩形点,换成QPainter 的 drawRect 方法来绘制矩形点。

http://www.lryc.cn/news/378949.html

相关文章:

  • 机器人里程计(Odometry)
  • 后端实现预览pdf,mp4,图片
  • 【C++】数据类型、函数、头文件、断点调试、输入输出、条件与分支、VS项目设置
  • Spring框架的原理及应用详解(六)
  • C++ | Leetcode C++题解之第151题反转字符串中的单词
  • Leetcode 415. 字符串相加-大数相加
  • IDEA集成Docker实现快捷部署
  • 五十四、openlayers官网示例LineString Arrows解析——在地图上绘制箭头
  • 内核学习——3、自旋锁的作用及其实现
  • 恒昌公益第五所“云杉校园”于湖南怀化正式揭牌
  • 番外篇 | YOLOv8算法解析和实战应用:车辆检测 + 车辆追踪 + 行驶速度计算
  • 【React】useState 的原理
  • 从二元一次方程组到二阶行列式再到克拉默法则
  • 示例:WPF中绑定枚举到ComboBox想显示成中文或自定义名称如何实现
  • 嵌入式系统软件架构设计方法
  • 【面试题】风险评估和应急响应的工作流程
  • Vue70-路由的几个注意点
  • Aidlux 1.4 部署Nextcloud 2024.6实录 没成功
  • 网络与协议安全复习 - 电子邮件安全
  • Python里的序列化是什么?
  • 自动抓取服务器功耗
  • 服务器接收苹果订阅通知
  • 2024年旅游与经济发展国际会议(ICTED 2024)
  • 【NLP练习】Transformer实战-单词预测
  • 使用Lua脚本保证原子性的Redis分布式锁实现
  • 什么是nginx到底怎么配置,什么是网关到底怎么配置?
  • 轻量级服务器内存不够编译的情况解决方案(以安装Ta-Lib库为例)
  • 学校校园考场电子钟,同步授时,助力考场公平公正-讯鹏科技
  • MySQL存储管理(一):删数据
  • 深度剖析现阶段的多模态大模型做不了医疗