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_方法来运行应用程序。
