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

 更新时间:2021年03月17日 10:16:40   投稿:jingxian  
这篇文章主要介绍了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_())

运行效果为:

以上。

补充: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)

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

相关文章

  • 使用Python删除PDF文件名中的特定文字

    使用Python删除PDF文件名中的特定文字

    在处理大量PDF文件时,有时候我们可能需要对文件名进行批量修改,例如,我们可能需要将文件名中的特定文字删除或替换,今天,我将向大家介绍如何使用Python编写一个简单的程序,选择一个文件夹,并删除文件名中的指定文字,需要的朋友可以参考下
    2023-09-09
  • Pandas中Concat与Append的实现与区别小结

    Pandas中Concat与Append的实现与区别小结

    本文主要介绍了Pandas中Concat与Append的实现与区别小结,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-11-11
  • 将matplotlib绘图嵌入pyqt的方法示例

    将matplotlib绘图嵌入pyqt的方法示例

    这篇文章主要介绍了将matplotlib绘图嵌入pyqt的方法示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-01-01
  • Sublime开发python程序的示例代码

    Sublime开发python程序的示例代码

    本篇文章主要介绍了Sublime开发python程序的示例代码,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-01-01
  • 对Python生成汉字字库文字,以及转换为文字图片的实例详解

    对Python生成汉字字库文字,以及转换为文字图片的实例详解

    今天小编就为大家分享一篇对Python生成汉字字库文字,以及转换为文字图片的实例详解,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-01-01
  • Python实现爆破ZIP文件(支持纯数字,数字+字母,密码本)

    Python实现爆破ZIP文件(支持纯数字,数字+字母,密码本)

    这篇文章主要为大家分享了如何利用Python实现破解zip文件的密码,能实现破解纯数字、数字+字母、密码本等种类的密码,需要的可以参考一下
    2022-03-03
  • python3.6使用urllib完成下载的实例

    python3.6使用urllib完成下载的实例

    今天小编就为大家分享一篇python3.6使用urllib完成下载的实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-12-12
  • python修改文件内容的3种方法详解

    python修改文件内容的3种方法详解

    这篇文章主要介绍了python修改文件内容的3种方法详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-11-11
  • python实现PID算法及测试的例子

    python实现PID算法及测试的例子

    今天小编就为大家分享一篇python实现PID算法及测试的例子,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-08-08
  • Pygame中画圆弧的方法

    Pygame中画圆弧的方法

    本文主要介绍了Pygame中画圆弧的方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-04-04

最新评论