在pyqt中把一张图片显示在窗口里,不让窗口随着图片大小改变尺寸,让图片固定在区域内显示?
时间: 2024-04-13 21:29:40 浏览: 120
PYQT5实现控制台显示功能的方法
在 PyQT 中,你可以使用 QLabel 控件来显示图片,并通过设置 QLabel 的属性来控制窗口和图片的尺寸。下面是一个示例代码,演示如何将一张图片固定在窗口的指定位置内显示:
```python
import sys
from PyQt5.QtWidgets import QApplication, QMainWindow, QLabel, QWidget, QVBoxLayout
from PyQt5.QtGui import QPixmap
class MainWindow(QMainWindow):
def __init__(self):
super().__init__()
self.setWindowTitle('Image Viewer')
# 创建一个 QWidget 作为主窗口的中心部件
self.central_widget = QWidget(self)
self.setCentralWidget(self.central_widget)
# 创建一个 QVBoxLayout 作为中心部件的布局管理器
self.layout = QVBoxLayout(self.central_widget)
# 创建一个 QLabel 用于显示图片
self.image_label = QLabel(self)
self.layout.addWidget(self.image_label)
# 设置 QLabel 的对齐方式为居中
self.image_label.setAlignment(Qt.AlignCenter)
# 加载并设置图片
pixmap = QPixmap('path/to/your/image.jpg')
self.image_label.setPixmap(pixmap)
# 固定窗口的大小,不允许调整
self.setFixedSize(pixmap.size())
# 调整 QLabel 的大小策略为固定大小
self.image_label.setFixedSize(pixmap.size())
if __name__ == '__main__':
app = QApplication(sys.argv)
window = MainWindow()
window.show()
sys.exit(app.exec_())
```
在上述代码中,你需要将 `'path/to/your/image.jpg'` 替换为你自己的图片路径。通过设置 `self.setFixedSize(pixmap.size())`,窗口的大小将根据图片的大小进行固定,而 `self.image_label.setFixedSize(pixmap.size())` 则将 QLabel 的大小设置为与图片相同,从而实现了图片在窗口内固定显示的效果。
阅读全文