可以參考之前的教程安裝 PyQt 和 PyQt Designer
https://blog.csdn.net/smx6666668/article/details/145909326?spm=1011.2415.3001.10575&sharefrom=mp_manage_link
一、打開pycharm中的QTdesigner
二、設計界面
和之前一樣,使用 PyQt Designer 來設計界面并保存為 .ui 文件(例如:image_viewer.ui)。界面中需要有:
一個 QPushButton 用于選擇圖片文件。
一個 QLabel 用于顯示圖片。
為了方便在 Python 中控制這些組件,你需要為這些組件設置對象名稱:
右鍵點擊 QPushButton,選擇 Change Object Name,將按鈕命名為 btn_select_image。
右鍵點擊 QLabel,選擇 Change Object Name,將標簽命名為 lbl_image_display。
保存 .ui 文件
設計完成后,點擊 File -> Save,保存為 .ui 文件(例如:image_viewer.ui)
三、轉換 .ui 文件為 Python 代碼(可選)
這一步可放在最后進行,因為當需要頻繁修改界面時,每次都需要轉換,建議只有界面設計完成后續不修改時轉換
四、編寫 Python 代碼來實現功能
跳過第三步,直接使用動態加載uid
接下來,在 Python 中使用 uic 模塊動態加載 .ui 文件。以下是實現動態加載 .ui 文件的步驟(為了更清晰的展示解決問題的過程,之后的步驟在不斷的對界面進行優化。可以跳過中間不斷優化代碼的步驟直接查看最終的完整代碼)
import sys
from PyQt5.QtWidgets import QApplication, QMainWindow, QFileDialog, QVBoxLayout, QWidget
from PyQt5.QtGui import QPixmap
from PyQt5 import uic # 動態加載 .ui 文件class ImageViewer(QMainWindow):def __init__(self):super().__init__()# 加載 UI 文件uic.loadUi('image_viewer.ui', self)# 獲取 UI 中的控件self.btn_select_image = self.findChild(QPushButton, 'btn_select_image')self.lbl_image_display = self.findChild(QLabel, 'lbl_image_display')# 連接按鈕點擊事件self.btn_select_image.clicked.connect(self.select_image)def select_image(self):# 打開文件對話框,選擇圖片文件file, _ = QFileDialog.getOpenFileName(self, "選擇圖片", "", "Image Files (*.png *.jpg *.bmp *.jpeg)")if file:# 使用 QPixmap 加載并顯示圖片pixmap = QPixmap(file)self.lbl_image_display.setPixmap(pixmap)self.lbl_image_display.setScaledContents(True) # 自動調整圖片大小以適應標簽if __name__ == "__main__":app = QApplication(sys.argv)window = ImageViewer()window.show()sys.exit(app.exec_())
運行程序后,選擇圖片,發現按鈕和顯示圖片的區域都是固定的,而且窗口太小不美觀,圖片顯示不完全