帮我写一个用pyqt打开图片的代码,并且可以用鼠标滚轮调整图片大小
时间: 2023-05-17 13:04:32 浏览: 102
当然可以,以下是用 PyQt 打开图片并调整大小的代码:
```python
import sys
from PyQt5.QtWidgets import QApplication, QLabel, QMainWindow, QScrollArea, QVBoxLayout, QWidget
from PyQt5.QtGui import QPixmap
from PyQt5.QtCore import Qt
class ImageViewer(QMainWindow):
def __init__(self):
super().__init__()
# 设置窗口标题
self.setWindowTitle('图片查看器')
# 创建标签
self.label = QLabel()
self.label.setAlignment(Qt.AlignCenter)
# 创建滚动区域
scroll_area = QScrollArea()
scroll_area.setWidgetResizable(True)
scroll_area.setWidget(self.label)
# 创建主窗口布局
main_layout = QVBoxLayout()
main_layout.addWidget(scroll_area)
# 创建主窗口部件
main_widget = QWidget()
main_widget.setLayout(main_layout)
# 设置主窗口部件
self.setCentralWidget(main_widget)
def set_image(self, image_path):
# 加载图片
pixmap = QPixmap(image_path)
# 设置标签图片
self.label.setPixmap(pixmap)
# 调整窗口大小
self.resize(pixmap.width(), pixmap.height())
def wheelEvent(self, event):
# 获取当前图片大小
current_size = self.label.pixmap().size()
# 计算缩放比例
if event.angleDelta().y() > 0:
scale_factor = 1.1
else:
scale_factor = 0.9
# 计算缩放后的大小
new_size = current_size * scale_factor
# 设置标签图片大小
self.label.setPixmap(self.label.pixmap().scaled(new_size))
if __name__ == '__main__':
# 创建应用程序对象
app = QApplication(sys.argv)
# 创建图片查看器对象
viewer = ImageViewer()
# 设置图片
viewer.set_image('image.jpg')
# 显示窗口
viewer.show()
# 运行应用程序
sys.exit(app.exec_())
```
这个代码可以打开指定路径的图片,并且可以用鼠标滚轮调整图片大小。
阅读全文