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

标签: 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("background-color:rgb(111,180,219)")
        self.file.setStyleSheet(
            "QPushButton{background-color:rgb(111,180,219)}"  # 按键背景色
            "QPushButton:hover{color:green}"  # 光标移动到上面后的前景色
            "QPushButton{border-radius:6px}"  # 圆角半径
            "QPushButton:pressed{background-color:rgb(180,180,180);border: None;}"  # 按下时的样式
        )

        # 设置显示窗口参数
        self.fileT = QtWidgets.QPushButton(self.centralwidget)
        self.fileT.setGeometry(QtCore.QRect(300, 660, 480, 28))
        self.fileT.setObjectName("file")
        self.fileT.setStyleSheet("background-color:rgb(111,180,219)")
        self.fileT.setStyleSheet(
            "QPushButton{background-color:rgb(111,180,219)}"  # 按键背景色
            "QPushButton:hover{color:green}"  # 光标移动到上面后的前景色
            "QPushButton{border-radius:6px}"  # 圆角半径
            "QPushButton:pressed{background-color:rgb(180,180,180);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_())

运行效果为:
在这里插入图片描述

以上。

版权声明:本文为AI414010原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/AI414010/article/details/107559281

智能推荐

MFC选择指定文件并显示路径,MFC打开文件夹显示文件夹中多种类型的文件名,双击图片名显示图片

1.选择指定文件并显示路径 图中“打开文件”按钮添加响应函数OnBnClickedButton1,用CFileDialog过滤文件类型并打开选择文件对话框, MFC提供的类CFileDialog只能用来打开文件。将选中的文件路径显示在Edit Control控件中   2.打开指定文件夹并显示其中多种指定文件名  (1)图中“打开文...

TCP连接常见问题

TCP常见状态 LISTEN: 侦听来自远方的TCP端口的连接请求 SYN-SENT: 再发送连接请求后等待匹配的连接请求 SYN-RECEIVED:再收到和发送一个连接请求后等待对方对连接请求的确认 ESTABLISHED: 代表一个打开的连接 FIN-WAIT-1: 等待远程TCP连接中断请求,或先前的连接中断请求的确认 FIN-WAIT-2: 从远程TCP等待连接中断请求 CLOSE-WAI...

centos7开启开机自动联网

将onboot选项的no改为yes 这个文件也可以将pc从dhcp修改为静态 ip配置 需要修改BOOTPROTO=dhcp为static,然后文件最后添加IP,GATEWAY,MASK,DNS...

R 基础知识:数据结构(data.frame & matrix & array)

1.data.frame data.frame是R语言用来处理表格式数据的数据结构。我们可以运用data.frame()函数手动创造数据框,让我们建立一个很简单的数据框叫做greatnbateams,这个数据框有队名、胜场数、败场数、是否获得总冠军与球季。 我们使用观测值(observations)来称呼数据框中水平方向的数据,使用变数(variables)来称呼数据框中垂直方向的数据;数据框能够...

猜你喜欢

mysql高级-视图

视图定义:是由查询结果形成的一张虚拟表,是表通过某种运算得到的一个投影。 同一张表可以创建多个视图。 创建视图的语法: create view viewName as select语句 查询视图:和表一样,可以添加where条件。 修改视图:alter view viewName as select * from… 删除视图:drop view viewName. 查看视图结构:和表...

【cocos creater】9.仿《弓箭传说》- 子弹的碰撞

查看项目所有章节 接着上一章,编辑bullet.ts脚本文件,添加碰撞函数,此方法在元素发生碰撞时会调用 同时,编辑bullet精灵属性,添加碰撞组件 碰撞组件有三个,一个是矩形,一个是圆形,一个是自定义。这里我们任选一个都可以 分别给bullet,role,enemy三个元素都添加上碰撞组件 再打开enemy属性,选择group,点击编辑按钮,打开分组管理 分别添加role组,enemy组,bu...

HTML P不能包含块级元素(包括自身)(转)

abcc项目中碰到的,在一个表单中用P包含一个label和div,从Firebug中看html结构div却跑到P外面去了。甚是诧异,原来P元素是不能包含块级元素(包括P自身)的。 The P element represents a paragraph. It cannot contain block-level elements (including&nb...

centos mysql5.7 安装及初始化配置

1、配置YUM源 在MySQL官网中下载YUM源rpm安装包:http://dev.mysql.com/downloads/repo/yum/    2、安装MySQL 3、启动MySQL服务 4、配置MySQL   5、部分贴图...

【经验总结】电脑休眠后虚拟网卡地址变成169.254网段的解决方法

0x00 前言 一直以来会遇到一个问题,就是电脑在休眠后再次打开电脑,在使用虚拟机时网络老是会碰到问题,此时如果查看物理机上虚拟网卡的地址就会发现 IP 地址变成了 169.254.xxx.xxx 。 之所以会出现这个问题是因为 Windows 在网络不通的情况下,会自动配置一个169.254.xxx.xxx这个地址段的IP地址。 0x01 常规解决方法 在控制面板 -> 网络和 Inter...