PyQt5 加載圖片和文本文件


首先我們來看一組效果
這里寫圖片描述

選擇圖片文本設置完以后
這里寫圖片描述

選擇過程中
這里寫圖片描述

核心代碼解釋

   # 這個函數是用來打開電腦的資源管理器選擇照片用的
    def loadFile(self):
        print("load--file")
        # QFileDialog就是系統對話框的那個類第一個參數是上下文,第二個參數是彈框的名字,第三個參數是開始打開的路徑,第四個參數是需要的格式
        fname, _ = QFileDialog.getOpenFileName(self, '選擇圖片', 'c:\\', 'Image files(*.jpg *.gif *.png)')
        self.label.setPixmap(QPixmap(fname))


# 這個函數是打開文本選擇器,加載文本的函數
      def load_text(self):
        print("load--text")
        #初始化這個實例,設置一些基本屬性
        dlg = QFileDialog()
        dlg.setFileMode(QFileDialog.AnyFile)
        dlg.setFilter(QDir.Files)
        # 當選擇器關閉的時候
        if dlg.exec_():
            # 拿到所選擇的的文本
            filenames = dlg.selectedFiles()
            #讀取文本內容設置到TextEdit當中來
            f = open(filenames[0], 'r')
            with f:
                data = f.read()
                self.content.setText(data)

完整代碼

import sys
from PyQt5.QtCore import *
from PyQt5.QtGui import *
from PyQt5.QtWidgets import *

class filedialogdemo(QWidget):

    def __init__(self, parent=None):
        super(filedialogdemo, self).__init__(parent)
        layout = QVBoxLayout()

        self.btn = QPushButton()
        self.btn.clicked.connect(self.loadFile)
        self.btn.setText("從文件中獲取照片")
        layout.addWidget(self.btn)

        self.label = QLabel()
        layout.addWidget(self.label)

        self.btn_2 = QPushButton()
        self.btn_2.clicked.connect(self.load_text)
        self.btn_2.setText("加載電腦文本文件")
        layout.addWidget(self.btn_2)

        self.content = QTextEdit()
        layout.addWidget(self.content)
        self.setWindowTitle("測試")

        self.setLayout(layout)

    def loadFile(self):
        print("load--file")
        fname, _ = QFileDialog.getOpenFileName(self, '選擇圖片', 'c:\\', 'Image files(*.jpg *.gif *.png)')
        self.label.setPixmap(QPixmap(fname))

    def load_text(self):
        print("load--text")
        dlg = QFileDialog()
        dlg.setFileMode(QFileDialog.AnyFile)
        dlg.setFilter(QDir.Files)
        if dlg.exec_():
            filenames = dlg.selectedFiles()
            f = open(filenames[0], 'r')
            with f:
                data = f.read()
                self.content.setText(data)

if __name__ == '__main__':
    app = QApplication(sys.argv)
    fileload =  filedialogdemo()
    fileload.show()
    sys.exit(app.exec_())


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM