python代码示例图片-使用PyQt5实现图片查看器的示例代码

一、前言

在学习 PyQt5 的过程中我会不断地做一些小的 Demo,用于让自己能够更好地理解和学习,这次要做的就是一个图片查看器,主要功能包括打开图片、拖动图片、放大和缩小图片。

最终实现的图片查看器你效果如下:

202004211406351.png

二、主要步骤

1.显示图片

PyQt5 绘图系统能渲染矢量图像、位图图像和轮廓字体文本。一般会使用在修改或者提高现有组件的功能,或者创建自己的组件,使用 PyQt5 的绘图 API 进行操作。在 Qt 中有 QPainter 类用于执行绘制的操作,绘图由 paintEvent() 来完成,绘图的代码要放在 QPainter 对象的 start() 和 end() 方法之间。

要将图片显示出来,首先是继承 QWidget,然后实现 paintEvent() 方法,主要是使用 drawPixmap() 方法,需要传入 QPixmap 对象并将其绘制出来,绘图的代码如下:

def paintEvent(self, e):

"""

receive paint events

:param e: QPaintEvent

:return:

"""

if self.scaled_img:

painter = QPainter()

painter.begin(self)

painter.drawPixmap(self.point, self.scaled_img)

painter.end()

2.拖动图片

  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
PyQt5是一个流行的Python GUI框架,可用于创建各种桌面应用程序,包括图片查看。下面是一个简单的PyQt5图片查看示例: ```python import sys from PyQt5.QtCore import Qt from PyQt5.QtGui import QPixmap from PyQt5.QtWidgets import QApplication, QWidget, QLabel, QVBoxLayout, QHBoxLayout, QPushButton, QFileDialog class ImageViewer(QWidget): def __init__(self): super().__init__() self.image = None self.image_path = None self.image_label = QLabel() self.image_label.setAlignment(Qt.AlignCenter) self.open_button = QPushButton('Open Image') self.open_button.clicked.connect(self.open_image) self.prev_button = QPushButton('Prev') self.prev_button.setEnabled(False) self.prev_button.clicked.connect(self.prev_image) self.next_button = QPushButton('Next') self.next_button.setEnabled(False) self.next_button.clicked.connect(self.next_image) button_layout = QHBoxLayout() button_layout.addWidget(self.open_button) button_layout.addWidget(self.prev_button) button_layout.addWidget(self.next_button) layout = QVBoxLayout() layout.addWidget(self.image_label) layout.addLayout(button_layout) self.setLayout(layout) def open_image(self): file_path, _ = QFileDialog.getOpenFileName(self, 'Open Image', '', 'Image Files (*.png *.jpg *.bmp)') if file_path: self.image_path = file_path self.image = QPixmap(file_path) self.image_label.setPixmap(self.image) self.prev_button.setEnabled(False) self.next_button.setEnabled(True) def prev_image(self): pass def next_image(self): pass if __name__ == '__main__': app = QApplication(sys.argv) iv = ImageViewer() iv.show() sys.exit(app.exec_()) ``` 这个示例创建了一个`ImageViewer`类,它继承自`QWidget`,并包含一个`QLabel`控件用于显示图像,以及三个按钮:打开图像、上一个图像和下一个图像。 当用户单击“打开图像”按钮时,会弹出一个文件对话框,允许用户选择要查看的图像文件。所选文件的路径将存储在`self.image_path`变量中,并使用`QPixmap`创建一个`QImage`对象。然后,将该图像显示在`QLabel`控件中。 上一个和下一个按钮当前都不可用,因为我们还没有实现这些功能。但是,你可以使用代码作为起点来编写一个完整的PyQt5图片查看

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值