Qt | 关于画图类的使用 QPainter

331 阅读2分钟

Offer 驾到,掘友接招!我正在参与2022春招打卡活动,点击查看活动详情

前言:

QPaintDevice、QPaintEngine和QPainter是Qt绘制系统的3个核心类,QPainter类用来实现绘制的实际操作;QPaintDevice类是能够在其中进行绘制的类,也就是说,QPainter类可以在任何QPaintDevice的子类上进行绘制。QPaintEngine继承自QPaintDevice。

画直线:

用于画直线的函数是drawLine();它的常用的几种形式有:

  • void drawLine(int x1, int y1, int x2, int y2); x1和y1表示起始点的横坐标和纵坐标;x2和y2表示终点的横坐标和纵坐标。
  • void drawLine(const QPoint &p1, const QPoint &p2); p1表示起始点的坐标点,p2表示终点的坐标点。

画矩形:

用于画矩形的函数是drawRect();它的常用的几种形式有:

  • void drawRect(int x, int y, int width, int height); x和y是矩形的左上角的横坐标和纵坐标的值,width是矩形的宽度,height是矩形的高度。
  • void drawRect(const QRect &rectangle); rectangle是矩形的矩形坐标对象。

画椭圆和圆:

圆其实是椭圆的一种特殊形式,用于画椭圆的函数是drawEllipse();它的常用的几种形式有:

  • void QPainter::drawEllipse(const QRect &rectangle); rectangle是要画椭圆的矩形边界对应的坐标。
  • void QPainter::drawEllipse(int x, int y, int width, int height); x和y是要画椭圆的圆点(中心点)的横坐标和纵坐标值,width是椭圆长轴的值,height是椭圆短轴的值。其实就是圆心点,水平方向半径,垂直方向半径。当width等于height时,画出的就是圆。

绘制文本:

用于绘制文本的函数是drawText();它的常用的几种形式有:

  • drawText(const QPoint &position, const QString &text); position是要画文本字符串的左上角的顶点坐标,text是要绘制的文本字符串。
  • drawText(int x, int y, const QString &text); x和y是要绘制文本字符串的左上角顶点的横坐标值和纵坐标值,text是要绘制的文本字符串。