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

PyQt4.QtGui绘制图像与图形示例

发布时间:2023-12-24 08:12:52

PyQt4是一个基于Qt框架的Python图形用户界面(GUI)工具包。它提供了丰富的GUI组件和具有强大绘图功能的API。在PyQt4.QtGui模块中,有各种类和函数可用于绘制图像和图形。

下面是一个使用PyQt4.QtGui中的一些绘图功能的示例。在此示例中,我们将创建一个简单的窗口,并在其上绘制一个图像和一些基本的图形。

import sys
from PyQt4 import QtGui, QtCore

class Example(QtGui.QWidget):
    
    def __init__(self):
        super(Example, self).__init__()
        
        self.setGeometry(300, 300, 280, 250)
        self.setWindowTitle('Image and Graphics Example')
        
    def paintEvent(self, event):
        
        # 创建绘图对象
        painter = QtGui.QPainter()
        painter.begin(self)
        
        # 绘制图像
        image = QtGui.QImage('image.jpg')
        if not image.isNull():
            painter.drawImage(QtCore.QPoint(50, 50), image)
        
        # 绘制图形
        pen = QtGui.QPen(QtCore.Qt.blue, 2, QtCore.Qt.SolidLine)
        
        # 绘制矩形
        rect = QtCore.QRect(100, 100, 200, 150)
        painter.setPen(pen)
        painter.drawRect(rect)
        
        # 绘制椭圆
        ellipse = QtCore.QRect(300, 100, 200, 150)
        painter.setPen(pen)
        painter.drawEllipse(ellipse)
        
        # 绘制直线
        line = QtCore.QLine(100, 200, 400, 200)
        painter.setPen(pen)
        painter.drawLine(line)
        
        painter.end()

def main():
    
    app = QtGui.QApplication(sys.argv)
    ex = Example()
    ex.show()
    sys.exit(app.exec_())

if __name__ == '__main__':
    main()

在这个示例中,我们首先创建了一个名为Example的QWidget子类,它将用作主窗口。在构造函数中,我们设置了窗口的大小和标题。

然后,我们重写了paintEvent方法。在这个方法中,我们使用QPainter类创建了一个绘图对象,并调用begin方法开始绘图。然后,我们使用drawImage方法绘制了一个图像,这里我们假设当前目录下有一个名为image.jpg的图像文件。

接下来,我们使用QPen类创建了一个绘制矩形和椭圆的画笔。然后,我们使用setPen方法将这个画笔应用于绘图对象。然后,我们使用drawRect和drawEllipse方法绘制了一个矩形和一个椭圆。

最后,我们使用QLine类创建了一条绘制直线的线段,并使用drawLine方法绘制了这条直线。

最后,我们调用QApplication类的exec_方法来运行应用程序。