PyQt5按下按鍵選擇文件夾並顯示


問題:使用PyQt5開發桌面程序,實現功能為:按下按鍵,打開文件夾,選擇文件夾,並將路徑顯示出來。

解決方法

一、主要函數(直接能運行的代碼見二)

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)") #當窗口非繼承QtWidgets.QDialog時,self需替換成 None

3、選擇多個文件

    def msg(self,Filepath): directory = QtWidgets.QFileDialog.getOpenFileNames(self, self, "選取多個文件", "./","All Files (*);;Text Files (*.txt)") #當窗口非繼承QtWidgets.QDialog時,self需替換成 None

4、設置保存文件路徑

    def msg(self,Filepath): directory = QtWidgets.QFileDialog.getSaveFileName(self, "設置路徑","./","All Files (*);;Text Files (*.txt)") #當窗口非繼承QtWidgets.QDialog時,self需替換成 None

二、
一個功能為按下按鍵選擇文件夾並顯示路徑的demo。
(從項目里摘出來的,不太精致,但運行沒問題)

from PyQt5 import QtCore, QtWidgets import sys ########################################## #ui界面設置 class Ui_MainWindow(object): def setupUi(self, MainWindow): #主窗口參數設置 MainWindow.setObjectName("MainWindow") MainWindow.resize(848, 721) self.centralwidget = QtWidgets.QWidget(MainWindow) self.centralwidget.setObjectName("centralwidget") # 設置按鍵參數 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}" # 光標移動到上面后的前景色 "QPushButton{border-radius:6px}" # 圓角半徑 "QPushButton:pressed{border: None;}" # 按下時的樣式 ) # 設置顯示窗口參數 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}" # 光標移動到上面后的前景色 "QPushButton{border-radius:6px}" # 圓角半徑 "QPushButton:pressed{border: None;}" # 按下時的樣式 ) #主窗口及菜單欄標題欄設置 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按鈕點擊事件回調函數################ 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) #########主函數入口 ######### if __name__ == '__main__': app = QtWidgets.QApplication(sys.argv) mainWindow = QtWidgets.QMainWindow() ui = Ui_MainWindow() ui.setupUi(mainWindow) mainWindow.show() sys.exit(app.exec_())

運行效果為:
在這里插入圖片描述

以上。


免責聲明!

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



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