当前位置: 首页>編程日記>正文

Qt绘图基础教程

Qt绘图基础教程

QPainter基本绘图

  • QPainter是用来进行绘图的操作类,QPaintDevice是一个可以使用QPainter进行绘图的抽象的二维界面。
  • 一般的绘图设备包括QWidget、Qpixmap\QImage等,这些设备为QPainter提供了一个“画布”
  • 在QWidget上进行绘图,只需要重新定义paintEvent()事件,编写响应代码。基本操作是:创建一个QPainter对象获取绘图设备的接口,然后使用QPainter对象来绘图。
  • QPainter绘图的基本属性
    • pen属性:QPen对象,画笔。用于画线。可以设置线条样式(style)、端点样式(capStyle)和连接样式(joinStyle)等
    • brush属性:QBrush对象,画刷。用于设置一个区域的填充特性,包括填充样式(Style)、填充的材质图片(Texture)、渐变填充。
      • 渐变填充:线性渐变(QLinearGradient)、辐射渐变(QRadialGradient)、圆锥形渐变(QConicalGradient)
    • font属性:QFont对象。用于绘制文字。
    • 还有一些其他功能:叠加模式、旋转、缩放等。
  • QPainter绘制基本图形元件,包括点、直线椭圆、曲线等,均以drawXxxx()为形式的函数。
    • void QPainter::drawPath(constQPainterPath&path);是用于绘制复杂图形的函数,QPainterPath是一系列绘图操作的顺序集合,以便于重复使用。例如绘制多个星星。一个闭合的QPainterPath是终点和起点连接起来的绘图路径。

坐标系统和坐标变换

  • 绘图设备是物理坐标系统,通过QPainter的平移、旋转等可以得到更加容易操作的逻辑系统,QPainter还提供了视口(Viewport)和窗口(window)坐标系。默认情况下,两者是同一矩形。使用窗口的优点是:只需要按照窗口的坐标定义来绘图,而不需要管实际的物理坐标范围的大小,当实际的绘图设备大小变化时候,绘制图形大小也会自动变化。这样可以将绘图的功能和绘图设备隔离,使得绘图功能能够用在不同的设备
  • 叠加模式:void QPainter::setCompositionMode(CompositionModemode);

QGraphics View绘图架构

  • 采用QPainter绘图时,需要在绘图设备中重写paintEvent()事件。这种方法适用于绘制复杂性不高的固定图形,不能实现图件的选择、编辑、拖放和修改等。Qt绘制复杂的交互图形提供了QGraphics View绘图架构,是一种基于图形项的模型\视图模式。
  • 场景、视图和图形项

图片图片

在GraphicsView中有3个有效的坐标系统,图形项坐标、场景坐标和视图坐标。所有的鼠标事件、拖放事件的坐标首先是由视图坐标定义的,然后用户需要将这些坐标映射为场景坐标,以便于和图形项交互。场景坐标是图形项的基础坐标。不同坐标系统之间可以采用坐标映射。

QtChart图表绘制

  • 可以进行少量的数据进行绘制相关的图表,在Qt帮助文档有各种的demo,如果大量的数据可以采用QCustomPlot
  • QtChart支持折线图、柱状图、饼图等图表。核心组件是QChartView和QChart


https://www.fengoutiyan.com/post/13390.html

相关文章:

  • qt流程图绘制
  • qt 高效绘图
  • qt画曲线图
  • qt画坐标图
  • ps绘图基础教程
  • qt曲线绘制控件
  • cad新手绘图教程
  • mastercam简单绘图教程
  • 鏡像模式如何設置在哪,圖片鏡像操作
  • 什么軟件可以把圖片鏡像翻轉,C#圖片處理 解決左右鏡像相反(旋轉圖片)
  • 手機照片鏡像翻轉,C#圖像鏡像
  • 視頻鏡像翻轉軟件,python圖片鏡像翻轉_python中鏡像實現方法
  • 什么軟件可以把圖片鏡像翻轉,利用PS實現圖片的鏡像處理
  • 照片鏡像翻轉app,java實現圖片鏡像翻轉
  • 什么軟件可以把圖片鏡像翻轉,python圖片鏡像翻轉_python圖像處理之鏡像實現方法
  • matlab下載,matlab如何鏡像處理圖片,matlab實現圖像鏡像
  • 圖片鏡像翻轉,MATLAB:鏡像圖片
  • 鏡像翻轉圖片的軟件,圖像處理:實現圖片鏡像(基于python)
  • canvas可畫,JavaScript - canvas - 鏡像圖片
  • 圖片鏡像翻轉,UGUI優化:使用鏡像圖片
  • Codeforces,CodeForces 1253C
  • MySQL下載安裝,Mysql ERROR: 1253 解決方法
  • 勝利大逃亡英雄逃亡方案,HDU - 1253 勝利大逃亡 BFS
  • 大一c語言期末考試試題及答案匯總,電大計算機C語言1253,1253《C語言程序設計》電大期末精彩試題及其問題詳解
  • lu求解線性方程組,P1253 [yLOI2018] 扶蘇的問題 (線段樹)
  • c語言程序設計基礎題庫,1253號C語言程序設計試題,2016年1月試卷號1253C語言程序設計A.pdf
  • 信奧賽一本通官網,【信奧賽一本通】1253:抓住那頭牛(詳細代碼)
  • c語言程序設計1253,1253c語言程序設計a(2010年1月)
  • 勝利大逃亡英雄逃亡方案,BFS——1253 勝利大逃亡
  • 直流電壓測量模塊,IM1253B交直流電能計量模塊(艾銳達光電)
  • c語言程序設計第三版課后答案,【渝粵題庫】國家開放大學2021春1253C語言程序設計答案
  • 18轉換為二進制,1253. 將數字轉換為16進制
  • light-emitting diode,LightOJ-1253 Misere Nim
  • masterroyale魔改版,1253 Dungeon Master
  • codeformer官網中文版,codeforces.1253 B
  • c語言程序設計考研真題及答案,2020C語言程序設計1253,1253計算機科學與技術專業C語言程序設計A科目2020年09月國家開 放大學(中央廣播電視大學)
  • c語言程序設計基礎題庫,1253本科2016c語言程序設計試題,1253電大《C語言程序設計A》試題和答案200901
  • 肇事逃逸車輛無法聯系到車主怎么辦,1253尋找肇事司機