欢迎访问宙启技术站
智能推送

Qtpy.QtGui库的图形绘制功能详解与实例演示

发布时间:2023-12-17 20:43:27

Qtpy.QtGui是一个用于图形绘制的库,它提供了丰富的功能和方法来绘制各种图形,并且可以自定义图形的颜色、样式、大小等。下面将详细介绍Qtpy.QtGui库的图形绘制功能,并提供一些实例演示。

Qtpy.QtGui库的图形绘制功能主要包括绘制点、线、矩形、椭圆、多边形等基本图形以及绘制文本和图片等。

1. 绘制点:

可以使用QPainter的setPen()方法设置绘制点的颜色,然后使用drawPoint()方法绘制点。例如:

import sys
from PyQt5.QtWidgets import QApplication, QWidget
from PyQt5.QtGui import QPainter, QColor

class Example(QWidget):

    def __init__(self):
        super().__init__()

        self.initUI()

    def initUI(self):
        self.setGeometry(300, 300, 350, 300)

    def paintEvent(self, event):
        qp = QPainter()
        qp.begin(self)
        self.drawPoint(qp)
        qp.end()

    def drawPoint(self, qp):
        qp.setPen(QColor(168, 34, 3))
        qp.drawPoint(200, 150)

app = QApplication(sys.argv)
ex = Example()
ex.show()
sys.exit(app.exec_())

运行上述代码,会在窗口中绘制一个红色的点。

2. 绘制线:

可以使用QPainter的drawLine()方法绘制线。例如:

import sys
from PyQt5.QtWidgets import QApplication, QWidget
from PyQt5.QtGui import QPainter, QColor

class Example(QWidget):

    def __init__(self):
        super().__init__()

        self.initUI()

    def initUI(self):
        self.setGeometry(300, 300, 350, 300)

    def paintEvent(self, event):
        qp = QPainter()
        qp.begin(self)
        self.drawLine(qp)
        qp.end()

    def drawLine(self, qp):
        qp.setPen(QColor(168, 34, 3))
        qp.drawLine(100, 100, 200, 200)

app = QApplication(sys.argv)
ex = Example()
ex.show()
sys.exit(app.exec_())

运行上述代码,会在窗口中绘制一条红线。

3. 绘制矩形:

可以使用QPainter的drawRect()方法绘制矩形。例如:

import sys
from PyQt5.QtWidgets import QApplication, QWidget
from PyQt5.QtGui import QPainter, QColor

class Example(QWidget):

    def __init__(self):
        super().__init__()

        self.initUI()

    def initUI(self):
        self.setGeometry(300, 300, 350, 300)

    def paintEvent(self, event):
        qp = QPainter()
        qp.begin(self)
        self.drawRect(qp)
        qp.end()

    def drawRect(self, qp):
        qp.setPen(QColor(168, 34, 3))
        qp.drawRect(100, 100, 200, 100)

app = QApplication(sys.argv)
ex = Example()
ex.show()
sys.exit(app.exec_())

运行上述代码,会在窗口中绘制一个红色的矩形。

4. 绘制椭圆:

可以使用QPainter的drawEllipse()方法绘制椭圆。例如:

import sys
from PyQt5.QtWidgets import QApplication, QWidget
from PyQt5.QtGui import QPainter, QColor

class Example(QWidget):

    def __init__(self):
        super().__init__()

        self.initUI()

    def initUI(self):
        self.setGeometry(300, 300, 350, 300)

    def paintEvent(self, event):
        qp = QPainter()
        qp.begin(self)
        self.drawEllipse(qp)
        qp.end()

    def drawEllipse(self, qp):
        qp.setPen(QColor(168, 34, 3))
        qp.drawEllipse(100, 100, 200, 100)

app = QApplication(sys.argv)
ex = Example()
ex.show()
sys.exit(app.exec_())

运行上述代码,会在窗口中绘制一个红色的椭圆。

5. 绘制多边形:

可以使用QPainter的drawPolygon()方法绘制多边形。首先需要创建一个QPolygon对象,然后使用addPoint()方法逐个添加多边形的顶点,最后调用drawPolygon()方法绘制多边形。例如:

import sys
from PyQt5.QtWidgets import QApplication, QWidget
from PyQt5.QtGui import QPainter, QColor, QPolygon

class Example(QWidget):

    def __init__(self):
        super().__init__()

        self.initUI()

    def initUI(self):
        self.setGeometry(300, 300, 350, 300)

    def paintEvent(self, event):
        qp = QPainter()
        qp.begin(self)
        self.drawPolygon(qp)
        qp.end()

    def drawPolygon(self, qp):
        qp.setPen(QColor(168, 34, 3))
        points = QPolygon()
        points.append(100, 100)
        points.append(200, 100)
        points.append(200, 200)
        points.append(100, 200)
        qp.drawPolygon(points)

app = QApplication(sys.argv)
ex = Example()
ex.show()
sys.exit(app.exec_())

运行上述代码,会在窗口中绘制一个红色的正方形。

6. 绘制文本和图片:

可以使用QPainter的drawText()方法绘制文本,使用drawImage()方法绘制图片。例如:

import sys
from PyQt5.QtWidgets import QApplication, QWidget
from PyQt5.QtGui import QPainter, QColor, QFont, QImage

class Example(QWidget):

    def __init__(self):
        super().__init__()

        self.initUI()

    def initUI(self):
        self.setGeometry(300, 300, 350, 300)

    def paintEvent(self, event):
        qp = QPainter()
        qp.begin(self)
        self.drawText(qp)
        self.drawImage(qp)
        qp.end()

    def drawText(self, qp):
        qp.setPen(QColor(168, 34, 3))
        qp.setFont(QFont('Arial', 12))
        qp.drawText(100, 100, 'Hello World!')

    def drawImage(self, qp):
        image = QImage("image.jpg")
        qp.drawImage(200, 200, image)

app = QApplication(sys.argv)
ex = Example()
ex.show()
sys.exit(app.exec_())

运行上述代码,会在窗口中绘制一段红色的文本和一张图片。

以上就是Qtpy.QtGui库的图形绘制功能的详细介绍和实例演示。使用Qtpy.QtGui库可以方便地实现各种图形的绘制,从而丰富和美化GUI应用程序的界面。希望通过本文的介绍和演示能帮助读者更好地理解和使用Qtpy.QtGui库的图形绘制功能。