查竣工验收报告的网站,快对作业小程序入口,深圳做网上商城网站,阳西哪里有做网站QPainter是Qt框架中的一个类#xff0c;用于在Qt基于应用程序中进行绘图和绘制图形。
使用QPainter#xff0c;可以绘制各种形状#xff0c;如线条、矩形、椭圆和多边形#xff0c;以及文本和图像。它提供了用于指定颜色、画笔、笔刷和变换的方法。
QPainter
在 PyQt5 中…QPainter是Qt框架中的一个类用于在Qt基于应用程序中进行绘图和绘制图形。
使用QPainter可以绘制各种形状如线条、矩形、椭圆和多边形以及文本和图像。它提供了用于指定颜色、画笔、笔刷和变换的方法。
QPainter
在 PyQt5 中绘图操作通常在 QWidget 的 paintEvent() 方法中完成。所有的绘图函数调用都必须位于 QPainter.begin() 和 QPainter.end() 之间。
import sys
from PyQt5.QtWidgets import QApplication, QWidget
from PyQt5.QtGui import QPainter
from PyQt5.QtCore import Qtclass MyWidget(QWidget):def __init__(self):super().__init__()self.initUI()def initUI(self):self.setWindowTitle(我的窗口)self.setGeometry(50, 50, 200, 150)def paintEvent(self, event):painter QPainter()painter.begin(self)# 绘图操作...painter.end()if __name__ __main__:app QApplication(sys.argv)w MyWidget()w.show()sys.exit(app.exec_())通过设置 QWidget 的调色板palette可以用 QPainter 来改变背景颜色。
from PyQt5.QtGui import QColor, QFont
from PyQt5.QtCore import Qtclass MyWidget(QWidget):# ... 省略其他代码 ...def initUI(self):# ... 省略其他代码 ...self.setAutoFillBackground(True)palette self.palette()palette.setColor(self.backgroundRole(), Qt.white) # 或者 Qt.blackself.setPalette(palette)# ... 省略其他代码 ...绘制文本
QPainter 的 drawText() 函数允许指定文本的位置和对齐方式。可以通过设置画笔QPainter.setPen()和字体QPainter.setFont()来自定义文本的外观。
from PyQt5.QtGui import QColor, QFont, QPainter
from PyQt5.QtCore import Qt, QPoint, QRectclass MyWidget(QWidget):# ... 省略其他代码 ...def paintEvent(self, event):painter QPainter()painter.begin(self)painter.setPen(QColor(0, 0, 255))painter.setFont(QFont(Arial, 20))painter.drawText(QPoint(10, 30), PyQt5)# ... 省略其他代码 ...painter.end()绘制直线
from PyQt5.QtGui import QPenclass MyWidget(QWidget):# ... 省略其他代码 ...def paintEvent(self, event):painter QPainter()painter.begin(self)pen QPen(Qt.black, 2, Qt.SolidLine)painter.setPen(pen)painter.drawLine(20, 40, 180, 40)# ... 省略其他代码 ...painter.end()绘制矩形
class MyWidget(QWidget):# ... 省略其他代码 ...def paintEvent(self, event):painter QPainter()painter.begin(self)painter.setPen(Qt.black)painter.drawRect(QRect(10, 10, 80, 80))# ... 省略其他代码 ...painter.end()绘制椭圆和圆
class MyWidget(QWidget):# ... 省略其他代码 ...def paintEvent(self, event):painter QPainter()painter.begin(self)painter.setPen(Qt.black)painter.drawEllipse(QRect(10, 30, 40, 80))# ... 省略其他代码 ...painter.end()绘制圆弧和圆形
class MyWidget(QWidget):# ... 省略其他代码 ...def paintEvent(self, event):painter QPainter()painter.begin(self)painter.setPen(Qt.black)painter.drawArc(QRect(20, 20, 50, 50), 0, 90*16) # 90度圆弧# ... 省略其他代码 ...painter.end()绘制多边形
from PyQt5.QtCore import QPointclass MyWidget(QWidget):# ... 省略其他代码 ...def paintEvent(self, event):painter QPainter()painter.begin(self)painter.setPen(Qt.black)p1 QPoint(40, 40)p2 QPoint(60, 20)p3 QPoint(80, 40)p4 QPoint(80, 80)p5 QPoint(40, 80)painter.drawPolygon([p1, p2, p3, p4, p5])# ... 省略其他代码 ...painter.end()绘制图像
QPainter 还支持在 QWidget 上绘制图像。可以使用 QImage 或 QPixmap 来加载和显示图像。
from PyQt5.QtGui import QImageclass MyWidget(QWidget):def __init__(self):super().__init__()self.initUI()def initUI(self):# ... 省略其他代码 ...self.qimage QImage(lena.jpg)def paintEvent(self, event):painter QPainter()painter.begin(self)painter.drawImage(QRect(10, 10, 120, 120), self.qimage)painter.end()# ... 省略其他代码 ...