PyQt5label图像自适应窗口代码
时间: 2023-06-14 12:03:49 浏览: 167
下面是一个PyQt5的示例代码,可以实现将图像自适应窗口大小:
```python
import sys
from PyQt5.QtGui import QPixmap
from PyQt5.QtWidgets import QApplication, QWidget, QLabel, QVBoxLayout
class ImageWindow(QWidget):
def __init__(self):
super().__init__()
self.setWindowTitle("Image Window")
self.setGeometry(100, 100, 600, 400)
# 创建标签
self.label = QLabel(self)
self.label.setScaledContents(True)
# 加载图像
self.image = QPixmap("example.jpg")
self.label.setPixmap(self.image)
# 创建布局并添加标签
layout = QVBoxLayout()
layout.addWidget(self.label)
self.setLayout(layout)
# 重写resizeEvent方法
def resizeEvent(self, event):
# 获取窗口大小
size = self.size()
# 将图像缩放到窗口大小并更新标签
self.label.setPixmap(self.image.scaled(size, aspectRatioMode=QtCore.Qt.KeepAspectRatio))
if __name__ == "__main__":
app = QApplication(sys.argv)
window = ImageWindow()
window.show()
sys.exit(app.exec_())
```
在这个例子中,我们创建了一个名为ImageWindow的窗口。我们将一个QLabel控件添加到窗口中,用于显示图像。我们使用QPixmap加载一个名为example.jpg的图像,并将其设置为标签的图像。
我们还重写了resizeEvent方法。这个方法在每次窗口大小发生变化时都会被调用。在这个方法中,我们获取窗口的新大小,然后将图像缩放到该大小,并将其设置为标签的图像。我们使用了QPixmap的scaled方法来缩放图像,保持纵横比。
最后,我们创建了一个应用程序并显示了我们的ImageWindow窗口。
阅读全文