PyQt5按下按键选择文件并显示路径

一、可直接运行代码

# encoding=gbk
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.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;" )

        # 主窗口及菜单栏标题栏设置
        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):
        fileName, fileType = QtWidgets.QFileDialog.getOpenFileName(None, "选取文件", "./", "All Files (*);;Text Files (*.txt)")
        self.fileT.setText(fileName)

#########主函数入口 #########
if __name__ == '__main__':
    app = QtWidgets.QApplication(sys.argv)
    mainWindow = QtWidgets.QMainWindow()
    ui = Ui_MainWindow()
    ui.setupUi(mainWindow)
    mainWindow.show()
    sys.exit(app.exec_())

二、函数解释

fileName, fileType = QtWidgets.QFileDialog.getOpenFileName(None, "选取文件", "./", "All Files (*);;Text Files (*.txt)")

fileName是文件的绝对路径,fileType是文件类型
第一个参数parent,用于指定父组件,一般是一个窗口,在这个窗口建立选择文件的对话框。这里是None。
第二个参数caption,定义这个选择文件的对话框的标题。
第三个参数dir,是对话框显示时默认打开的目录。这里是当前文件夹下的data文件夹。
第四个参数filter,用于文件对话框中文件的选择类型范围。这里是能选择所有文件。
可以根据不同场景设计可选文件类型。
比如想要将xls和xlsx区分开,本参数可以写,注意是使用两个“;”隔开的

XLS File(.xls);;XLSX File(.xlsx)

三、函数变形
1、选择文件夹并显示

def msg(self,Filepath):
  directory = QtWidgets.QFileDialog.getExistingDirectory(None,"选取文件夹","C:/") # 起始路径
  self.fileT.setText(directory)

2、选择文件

def msg(self,Filepath):
    fileName, fileType = 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
  • 5
    点赞
  • 50
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要实现按钮保存数据,可以通过以下步骤实现: 1. 创建一个保存数据的函数,并在该函数中完成数据的保存操作。 2. 创建一个按钮,并将该按钮的clicked信号连接到保存数据的函数上。 3. 在按钮被点击时,保存数据的函数将被调用,完成数据的保存。 以下是一个简单的示例代码,可以实现按钮保存数据的功能: ```python import sys from PyQt5.QtWidgets import QApplication, QWidget, QPushButton, QLineEdit class Example(QWidget): def __init__(self): super().__init__() self.initUI() def initUI(self): # 创建一个文本框和一个保存按钮 self.textbox = QLineEdit(self) self.textbox.move(20, 20) self.textbox.resize(280, 40) self.saveButton = QPushButton('保存', self) self.saveButton.move(20, 80) # 将保存按钮的clicked信号连接到保存数据的函数上 self.saveButton.clicked.connect(self.saveData) self.setGeometry(300, 300, 320, 120) self.setWindowTitle('保存数据') self.show() def saveData(self): # 获取文本框中的数据 data = self.textbox.text() # 将数据保存到文件中 with open('data.txt', 'w') as f: f.write(data) print('数据已保存') if __name__ == '__main__': app = QApplication(sys.argv) ex = Example() sys.exit(app.exec_()) ``` 在上述代码中,我们创建了一个文本框和一个保存按钮。当保存按钮被点击时,会触发saveData函数。在saveData函数中,我们获取文本框中的数据,并将数据保存到文件中。在本例中,我们将数据保存到了名为data.txt的文件中。 你只需要将自己的保存数据的函数替换掉示例代码中的saveData函数,即可实现按钮保存数据的功能。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值