对话框选择文件
# -*- coding: utf-8 -*-
# Form implementation generated from reading ui file 'QFileDialog.ui'
#
# Created by: PyQt5 UI code generator 5.15.9
#
# WARNING: Any manual changes made to this file will be lost when pyuic5 is
# run again. Do not edit this file unless you know what you are doing.
# 对话框选择文件
from PyQt5 import QtCore, QtGui, QtWidgets
class Ui_MainWindow(object):
def setupUi(self, MainWindow):
MainWindow.setObjectName("MainWindow")
MainWindow.resize(697, 510)
# QtWidgets.QWidget:是 QWidget 类的全称,QWidget 是 PyQt 中所有控件的基类,
# 用于创建用户界面中的窗口和部件。
# 这行代码的作用是创建一个 QWidget 对象,并将其父窗口设置为 MainWindow。
# 这个 QWidget 对象通常用作主窗口的中心部件,你可以在这个中心部件上添加其他控件,如按钮、标签、文本框等。
self.centralwidget = QtWidgets.QWidget(MainWindow)
self.centralwidget.setObjectName("centralwidget")
self.pushButton = QtWidgets.QPushButton(self.centralwidget)
self.pushButton.setGeometry(QtCore.QRect(200, 40, 75, 23))
self.pushButton.setObjectName("pushButton")
self.pushButton_2 = QtWidgets.QPushButton(self.centralwidget)
self.pushButton_2.setGeometry(QtCore.QRect(400, 40, 75, 23))
self.pushButton_2.setObjectName("pushButton_2")
self.listWidget = QtWidgets.QListWidget(self.centralwidget)
self.listWidget.setGeometry(QtCore.QRect(200, 100, 311, 281))
self.listWidget.setObjectName("listWidget")
# MainWindow.setCentralWidget(self.centralwidget) 这行代码的作用是将 self.centralwidget
# 设置为 MainWindow 的中心部件。在 PyQt 的 QMainWindow 架构中,中心部件是主窗口中的主要工作区域,
# 你可以在这个区域中放置应用程序的主要控件和布局。
#
# 为什么需要这行代码
# 在 PyQt 应用程序中,主窗口通常包含多个部分,包括菜单栏、工具栏、状态栏和中心部件。
# 中心部件是用户与应用程序交互的主要区域,因此需要将你创建的控件和布局添加到这个部件中。
# 通过调用 setCentralWidget 方法,你可以确保你的控件显示在主窗口的正确位置。
MainWindow.setCentralWidget(self.centralwidget)
self.menubar = QtWidgets.QMenuBar(MainWindow)
self.menubar.setGeometry(QtCore.QRect(0, 0, 697, 23))
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)
self.pushButton.clicked.connect(self.bindList)
self.pushButton_2.clicked.connect(self.bindList2)
# 使用dir filter获取文件
def bindList(self):
from PyQt5.QtWidgets import QFileDialog
dir = QFileDialog() # 创建文本对话框
dir.setFileMode(QFileDialog.ExistingFiles) # 设置多选
dir.setDirectory('C:\\') # 设置初始化路径为C盘
# 设置只显示图片文件
dir.setNameFilter("图片文件(*.jpg *.png *.bmp *.ico *.gif)")
if dir.exec_(): # 判断是否选择了文件
self.listWidget.addItems(dir.selectedFiles()) #将选择的文件加到listWidget
# 使用getOpenFileNames方法获取文件
def bindList2(self):
from PyQt5.QtWidgets import QFileDialog
files,filetype = QFileDialog.getOpenFileNames(None,'打开','C:\\',
'图片文件(*.jpg *.png *.bmp *.ico *.gif)')
self.listWidget.addItems(files)
def retranslateUi(self, MainWindow):
_translate = QtCore.QCoreApplication.translate
MainWindow.setWindowTitle(_translate("MainWindow", "MainWindow"))
self.pushButton.setText(_translate("MainWindow", "选择文件1"))
self.pushButton_2.setText(_translate("MainWindow", "选择文件2"))
import sys
# 主方法,程序从此处启动PyQt设计的窗体
if __name__ == '__main__':
app = QtWidgets.QApplication(sys.argv)
app.setStyle("Fusion") # 设置窗口风格
MainWindow = QtWidgets.QMainWindow() # 创建窗体对象
ui = Ui_MainWindow() # 创建PyQt设计的窗体对象
ui.setupUi(MainWindow) # 调用PyQt窗体的方法对窗体对象进行初始化设置
MainWindow.show() # 显示窗体
sys.exit(app.exec_()) # 程序关闭时退出进程
对话框选择文件夹
# -*- coding: utf-8 -*-
# Form implementation generated from reading ui file 'QFileDialog2.ui'
#
# Created by: PyQt5 UI code generator 5.15.9
#
# WARNING: Any manual changes made to this file will be lost when pyuic5 is
# run again. Do not edit this file unless you know what you are doing.
# 对话框选择文件夹
from PyQt5 import QtCore, QtGui, QtWidgets
class Ui_MainWindow(object):
def setupUi(self, MainWindow):
MainWindow.setObjectName("MainWindow")
MainWindow.resize(654, 479)
self.centralwidget = QtWidgets.QWidget(MainWindow)
self.centralwidget.setObjectName("centralwidget")
self.lineEdit = QtWidgets.QLineEdit(self.centralwidget)
self.lineEdit.setGeometry(QtCore.QRect(120, 90, 261, 41))
self.lineEdit.setObjectName("lineEdit")
self.label = QtWidgets.QLabel(self.centralwidget)
self.label.setGeometry(QtCore.QRect(30, 95, 81, 31))
self.label.setObjectName("label")
self.pushButton = QtWidgets.QPushButton(self.centralwidget)
self.pushButton.setGeometry(QtCore.QRect(444, 100, 101, 23))
self.pushButton.setObjectName("pushButton")
self.listWidget = QtWidgets.QListWidget(self.centralwidget)
self.listWidget.setGeometry(QtCore.QRect(120, 170, 441, 192))
self.listWidget.setObjectName("listWidget")
MainWindow.setCentralWidget(self.centralwidget)
self.menubar = QtWidgets.QMenuBar(MainWindow)
self.menubar.setGeometry(QtCore.QRect(0, 0, 654, 23))
self.menubar.setObjectName("menubar")
MainWindow.setMenuBar(self.menubar)
self.statusbar = QtWidgets.QStatusBar(MainWindow)
self.statusbar.setObjectName("statusbar")
MainWindow.setStatusBar(self.statusbar)
self.pushButton.clicked.connect(self.bindList)
self.retranslateUi(MainWindow)
QtCore.QMetaObject.connectSlotsByName(MainWindow)
def retranslateUi(self, MainWindow):
_translate = QtCore.QCoreApplication.translate
MainWindow.setWindowTitle(_translate("MainWindow", "MainWindow"))
self.label.setText(_translate("MainWindow", "选择路径:"))
self.pushButton.setText(_translate("MainWindow", "选择文件夹"))
def bindList(self):
from PyQt5.QtWidgets import QFileDialog
import os
# 创建路径选择对话框
dir = QFileDialog.getExistingDirectory(None,"选择文件夹路径",os.getcwd())
self.lineEdit.setText(dir) # lineEdit显示文件路径
list = os.listdir(dir) # 遍历选择的文件夹
self.listWidget.addItems(list)
import sys
# 主方法,程序从此处启动PyQt设计的窗体
if __name__ == '__main__':
app = QtWidgets.QApplication(sys.argv)
app.setStyle("Fusion") # 设置窗口风格
MainWindow = QtWidgets.QMainWindow() # 创建窗体对象
ui = Ui_MainWindow() # 创建PyQt设计的窗体对象
ui.setupUi(MainWindow) # 调用PyQt窗体的方法对窗体对象进行初始化设置
MainWindow.show() # 显示窗体
sys.exit(app.exec_()) # 程序关闭时退出进程