PyQt5按下按鍵選擇文件夾并顯示的實(shí)現(xiàn)
問題:
使用PyQt5開發(fā)桌面程序,實(shí)現(xiàn)功能為:按下按鍵,打開文件夾,選擇文件夾,并將路徑顯示出來。
解決方法:
一、主要函數(shù)(直接能運(yùn)行的代碼見二)
1、選擇文件夾并顯示
def msg(self,Filepath): directory = QtWidgets.QFileDialog.getExistingDirectory(None,"選取文件夾","C:/") # 起始路徑 self.fileT.setText(directory)
2、選擇文件
def msg(self,Filepath): directory = QtWidgets.QFileDialog.getOpenFileName(self, "選取文件","./", "All Files (*);;Text Files (*.txt)") #當(dāng)窗口非繼承QtWidgets.QDialog時(shí),self需替換成 None
3、選擇多個(gè)文件
def msg(self,Filepath): directory = QtWidgets.QFileDialog.getOpenFileNames(self, self, "選取多個(gè)文件", "./","All Files (*);;Text Files (*.txt)") #當(dāng)窗口非繼承QtWidgets.QDialog時(shí),self需替換成 None
4、設(shè)置保存文件路徑
def msg(self,Filepath): directory = QtWidgets.QFileDialog.getSaveFileName(self, "設(shè)置路徑","./","All Files (*);;Text Files (*.txt)") #當(dāng)窗口非繼承QtWidgets.QDialog時(shí),self需替換成 None
二、一個(gè)功能為按下按鍵選擇文件夾并顯示路徑的demo。
(從項(xiàng)目里摘出來的,不太精致,但運(yùn)行沒問題)
from PyQt5 import QtCore, QtWidgets import sys ########################################## #ui界面設(shè)置 class Ui_MainWindow(object): def setupUi(self, MainWindow): #主窗口參數(shù)設(shè)置 MainWindow.setObjectName("MainWindow") MainWindow.resize(848, 721) self.centralwidget = QtWidgets.QWidget(MainWindow) self.centralwidget.setObjectName("centralwidget") # 設(shè)置按鍵參數(shù) self.file = QtWidgets.QPushButton(self.centralwidget) self.file.setGeometry(QtCore.QRect(57, 660, 175, 28)) self.file.setObjectName("file") self.file.setStyleSheet(" margin: 0px; padding: 0px;">) self.file.setStyleSheet( "QPushButton{ margin: 0px; padding: 0px;">"QPushButton:hover{color:green}" # 光標(biāo)移動到上面后的前景色 "QPushButton{border-radius:6px}" # 圓角半徑 "QPushButton:pressed{border: None;}" # 按下時(shí)的樣式 ) # 設(shè)置顯示窗口參數(shù) self.fileT = QtWidgets.QPushButton(self.centralwidget) self.fileT.setGeometry(QtCore.QRect(300, 660, 480, 28)) self.fileT.setObjectName("file") self.fileT.setStyleSheet(" margin: 0px; padding: 0px;">) self.fileT.setStyleSheet( "QPushButton{ margin: 0px; padding: 0px;">"QPushButton:hover{color:green}" # 光標(biāo)移動到上面后的前景色 "QPushButton{border-radius:6px}" # 圓角半徑 "QPushButton:pressed{border: None;}" # 按下時(shí)的樣式 ) #主窗口及菜單欄標(biāo)題欄設(shè)置 MainWindow.setCentralWidget(self.centralwidget) self.menubar = QtWidgets.QMenuBar(MainWindow) self.menubar.setGeometry(QtCore.QRect(0, 0, 848, 26)) self.menubar.setObjectName("menubar") MainWindow.setMenuBar(self.menubar) self.statusbar = QtWidgets.QStatusBar(MainWindow) self.statusbar.setObjectName("statusbar") MainWindow.setStatusBar(self.statusbar) self.retranslateUi(MainWindow) QtCore.QMetaObject.connectSlotsByName(MainWindow) ################button按鈕點(diǎn)擊事件回調(diào)函數(shù)################ self.file.clicked.connect(self.msg) def retranslateUi(self, MainWindow): _translate = QtCore.QCoreApplication.translate MainWindow.setWindowTitle(_translate("MainWindow", "Deecamp_Eurus")) self.file.setText(_translate("MainWindow", "選擇文件")) self.fileT.setText(_translate("MainWindow", "")) #########選擇圖片文件夾######### def msg(self,Filepath): m = QtWidgets.QFileDialog.getExistingDirectory(None,"選取文件夾","C:/") # 起始路徑 self.fileT.setText(m) #########主函數(shù)入口 ######### if __name__ == '__main__': app = QtWidgets.QApplication(sys.argv) mainWindow = QtWidgets.QMainWindow() ui = Ui_MainWindow() ui.setupUi(mainWindow) mainWindow.show() sys.exit(app.exec_())
運(yùn)行效果為:
以上。
補(bǔ)充:pyqt5按鈕事件打開文件
如下所示:
self.pushButton.clicked.connect(self.btn1_click)#設(shè)置綁定事件 def btn1_click(self): filename,_=QFileDialog.getOpenFileName(QWidget(),'open',r"E:\images1") #打開文件或者如下:getOpenFileName第一個(gè)參數(shù)要求是QWidget對象 #filename,_=QFileDialog.getOpenFileName(None,'open',r"E:\images1",' ') img=QImage() img.load(filename) #更改圖片大小,適應(yīng)graphicsView窗口大小 img=img.scaled(self.graphicsView.width(),self.graphicsView.height()) #一個(gè)問題是:img=img.scaled(width=self.graphicsView.width(),height=self.graphicsView.height())這樣 #會出錯(cuò),不知道什么原因 scene = QGraphicsScene () scene. addPixmap ( QPixmap (). fromImage (img)) self .graphicsView. setScene (scene)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教。
相關(guān)文章
Python爬蟲爬取微博熱搜保存為 Markdown 文件的源碼
這篇文章主要介紹了Python爬蟲爬取微博熱搜保存為 Markdown 文件,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-02-02Tensorflow2.10使用BERT從文本中抽取答案實(shí)現(xiàn)詳解
這篇文章主要為大家介紹了Tensorflow2.10使用BERT從文本中抽取答案實(shí)現(xiàn)詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-04-04Python 文件操作之讀取文件(read),文件指針與寫入文件(write),文件打開方式示例
這篇文章主要介紹了Python 文件操作之讀取文件(read),文件指針與寫入文件(write),文件打開方式,結(jié)合實(shí)例形式分析了Python文件讀寫相關(guān)的指針、打開方式等相關(guān)操作技巧,需要的朋友可以參考下2019-09-09Python實(shí)現(xiàn)Restful API的例子
今天小編就為大家分享一篇Python實(shí)現(xiàn)Restful API的例子,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-08-08keras的ImageDataGenerator和flow()的用法說明
這篇文章主要介紹了keras的ImageDataGenerator和flow()的用法說明,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-07-07Python調(diào)用Java可執(zhí)行jar包問題
這篇文章主要介紹了Python調(diào)用Java可執(zhí)行jar包問題,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-12-12django框架面向?qū)ο驩RM模型繼承用法實(shí)例分析
這篇文章主要介紹了django框架面向?qū)ο驩RM模型繼承用法,結(jié)合實(shí)例形式分析了Django框架ORM模型抽象類繼承、多表繼承及代理模型繼承三種繼承方式實(shí)現(xiàn)技巧,需要的朋友可以參考下2019-07-07PyTorch張量拼接、切分、索引的實(shí)現(xiàn)
在學(xué)習(xí)深度學(xué)習(xí)的過程中,遇到的第一個(gè)概念就是張量,張量在pytorch中的計(jì)算十分重要,本文主要介紹了PyTorch張量拼接、切分、索引的實(shí)現(xiàn),具有一定的參考價(jià)值,感興趣的可以了解一下2024-03-03