PyQt5按下按键选择文件夹并显示的实现

作者:jingxian 时间:2023-05-02 02:02:10 

问题:

使用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_())

运行效果为:

PyQt5按下按键选择文件夹并显示的实现

以上。

补充:pyqt5按钮事件打开文件

如下所示:


self.pushButton.clicked.connect(self.btn1_click)#设置绑定事件
def btn1_click(self):
filename,_=QFileDialog.getOpenFileName(QWidget(),'open',r"E:\images1")
#打开文件或者如下:getOpenFileName第一个参数要求是QWidget对象
#filename,_=QFileDialog.getOpenFileName(None,'open',r"E:\images1",' ')
 img=QImage()
 img.load(filename)
#更改图片大小,适应graphicsView窗口大小
 img=img.scaled(self.graphicsView.width(),self.graphicsView.height())
#一个问题是:img=img.scaled(width=self.graphicsView.width(),height=self.graphicsView.height())这样
#会出错,不知道什么原因
scene = QGraphicsScene () scene. addPixmap ( QPixmap (). fromImage (img)) self .graphicsView. setScene (scene)

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。如有错误或未考虑完全的地方,望不吝赐教。

来源:https://www.cnblogs.com/yeu4h3uh2/p/14012812.html

标签:PyQt5,按键,文件夹,显示
0
投稿

猜你喜欢

  • 如何用python处理excel表格

    2021-04-21 04:06:55
  • vue全局自定义指令-元素拖拽的实现代码

    2024-04-30 08:46:16
  • 利用pandas合并多个excel的方法示例

    2021-05-28 00:02:00
  • 基python实现多线程网页爬虫

    2023-10-30 00:58:48
  • Javascript showModalDialog两个窗体之间传值

    2024-04-28 09:38:56
  • 如何在python中执行另一个py文件

    2022-04-09 14:57:51
  • 选择python进行数据分析的理由和优势

    2022-03-31 10:51:01
  • python3获取当前文件的上一级目录实例

    2021-06-03 02:22:22
  • python3 re返回形式总结

    2023-12-23 16:40:07
  • Windows下MySQL详细安装过程及基本使用

    2024-01-27 10:31:16
  • 详解用python写一个抽奖程序

    2023-07-06 10:28:12
  • MySQL中字符串与Num类型拼接报错的解决方法

    2024-01-27 11:32:00
  • Python检查和同步本地时间(北京时间)的实现方法

    2022-02-23 04:42:41
  • JavaScript变量声明var,let.const及区别浅析

    2024-05-09 15:05:37
  • Python连接mysql方法及常用参数

    2024-01-15 00:33:54
  • SQL Server误区30日谈 第3天 即时文件初始化特性可以在SQL Server中开启和关闭

    2024-01-16 18:38:28
  • Python 爬虫性能相关总结

    2021-02-04 05:45:26
  • python自制简易mysql连接池的实现示例

    2023-04-14 20:23:55
  • 在Sublime Editor中配置Python环境的详细教程

    2023-08-14 08:33:26
  • python pyecharts库的用法大全

    2021-04-21 13:48:05
  • asp之家 网络编程 m.aspxhome.com