PyQt5按下按键选择文件夹并显示的实现
作者:jingxian 发布时间:2023-05-02 02:02:10
标签: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)
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。如有错误或未考虑完全的地方,望不吝赐教。
来源:https://www.cnblogs.com/yeu4h3uh2/p/14012812.html


猜你喜欢
- openCV是基于C++开发的一个强大的图像处理库。在用C++处理图像或视频时通常会使用到openCV这个库,但是这个库并非C++中的标准库
- 1. python中创建新的csv文件(1). 使用csv.writer()创建:代码如下:import csvheaders = [
- 如:>>> print ord('a') 97 >>> print chr(97) a
- 详解:箱型图提供了识别异常值的一个标准:异常值通常被定义为小于QL-1.5IQR或大于QU+1.5IQR的值。QL称为下四分位数,表示全部观
- Jupyter Notebook 的快捷键使用前需要进行安装:pip install jupyter (前提是你已经安装好Python,并将
- 1. 新建.py文件# pip install kafka-pythonfrom kafka import KafkaConsumerimp
- 本文实例讲述了Python全局变量用法。分享给大家供大家参考,具体如下:全局变量不符合参数传递的精神,所以,平时我很少使用,除非定义常量。今
- 本文实例讲述了PHP+Ajax实现无刷新分页的方法。分享给大家供大家参考,具体如下:注:这里使用到的一些类库在前面文章都能找到源代码,因此为
- python strip() 函数和 split() 函数的详解及实例一直以来都分不清楚strip和split的功能,实际上st
- 函数如下: function update_timelist(&$arr,$timestamp,$threshold){ $time
- 1.图例legend基础语法及用法legend语法参数如下: matplotlib.pyplot.legend(*args, **
- 一、创建多对多1.学生表create table students ( id int not null primary
- IEBlog公布了开发中的Internet Explorer 8 Beta2版本的最新功能.IE8 Beta2在第一个版本的基础上做出了很大
- Mysql Table doesn't exist问题程序连接Mysql的时候总是提示表不存在,Table 'xx.QRTZ
- 使用bootstrap-paginator.js 分页来进行ajax 异步分页请求具体的做法如下 :首先定义一个异步提交请求的ajax 函数
- 可视化图表,有相当多种,但常见的也就下面几种,其他比较复杂一点,大都也是基于如下几种进行组合,变换出来的。对于初学者来说,很容易被这官网上众
- 子查询-嵌套查询子查询是指一个查询语句嵌套在另一个语句内部的查询原始查询方法SELECT last_name,salaryFROM empl
- 一、TensorFLow完整样例在MNIST数据集上,搭建一个简单神经网络结构,一个包含ReLU单元的非线性化处理的两层神经网络。在训练神经
- 一、题目描述题目内容:题目示例:题目解析:1 <= nums.length <= 104-107 <= nums
- 前言索引和切片是NumPy中最重要最常用的操作。熟练使用NumPy切片操作是数据处理和机器学习的前提,所以一定要掌握好。参考NumPy官方文