您好,登錄后才能下訂單哦!
首先我們來看一組效果
選擇圖片文本設(shè)置完以后
選擇過程中
核心代碼解釋
# 這個函數(shù)是用來打開電腦的資源管理器選擇照片用的 def loadFile(self): print("load--file") # QFileDialog就是系統(tǒng)對話框的那個類第一個參數(shù)是上下文,第二個參數(shù)是彈框的名字,第三個參數(shù)是開始打開的路徑,第四個參數(shù)是需要的格式 fname, _ = QFileDialog.getOpenFileName(self, '選擇圖片', 'c:\\', 'Image files(*.jpg *.gif *.png)') self.label.setPixmap(QPixmap(fname)) # 這個函數(shù)是打開文本選擇器,加載文本的函數(shù) def load_text(self): print("load--text") #初始化這個實例,設(shè)置一些基本屬性 dlg = QFileDialog() dlg.setFileMode(QFileDialog.AnyFile) dlg.setFilter(QDir.Files) # 當(dāng)選擇器關(guān)閉的時候 if dlg.exec_(): # 拿到所選擇的的文本 filenames = dlg.selectedFiles() #讀取文本內(nèi)容設(shè)置到TextEdit當(dāng)中來 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_())
以上這篇PyQt5 加載圖片和文本文件的實例就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持億速云。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。