[Pyqt5.5 for Python3.4.3 学习笔记]-->QFileDialog文件和文本夹选择框的使用方法

来源:赵克立博客 分类: Python 标签:PythonPyQt5发布时间:2016-06-04 16:44:57最后更新:2016-06-06 22:37:53浏览:9349
版权声明:
本文为博主原创文章,转载请声明原文链接...谢谢。o_0。
更新时间:
2016-06-06 22:37:53
温馨提示:
学无止境,技术类文章有它的时效性,请留意文章更新时间,如发现内容有误请留言指出,防止别人"踩坑",我会及时更新文章

下面是一个选择文件的代码

from PyQt5.QtWidgets import *
from PyQt5.QtGui import *
from PyQt5.QtCore import *
import sys,os
class SelectDialog(QDialog):
    def __init__(self, parent=None):
        super(SelectDialog, self).__init__(parent)
        self.path = os.getcwd()
        self.initUI()
        self.setWindowTitle("选择")
        self.resize(240, 100)
    def initUI(self):
        grid = QGridLayout()
        grid.addWidget(QLabel("路径:"), 0, 0)
        self.pathLineEdit = QLineEdit()
        self.pathLineEdit.setFixedWidth(200)
        self.pathLineEdit.setText(self.path)
        grid.addWidget(self.pathLineEdit, 0, 1)
        button = QPushButton("更改")
        button.clicked.connect(self.changePath)
        grid.addWidget(button, 0, 2)
        
        buttonBox = QDialogButtonBox()
        buttonBox.setOrientation(Qt.Horizontal)  # 设置为水平方向
        buttonBox.setStandardButtons(QDialogButtonBox.Ok|QDialogButtonBox.Cancel)
        buttonBox.accepted.connect(self.accept)  # 确定
        buttonBox.rejected.connect(self.reject)  # 取消
        grid.addWidget(buttonBox, 2, 1)
        self.setLayout(grid)
    def changePath(self):
        open = QFileDialog()
        self.path=open.getOpenFileName()
        print(self.path)
        #self.path = open.getExistingDirectory()
        self.pathLineEdit.setText(self.path[0])
if __name__ == '__main__':
    app = QApplication(sys.argv)
    dialog = SelectDialog()
    if dialog.exec_():
        pass

QQ截图20160604164255.png

上面效果中选择的文件还是英文的,下面我们改成中文

buttonBox.button(QDialogButtonBox.Ok).setText('选择')
buttonBox.button(QDialogButtonBox.Cancel).setText('取消')

QQ截图20160604164004.png

选择多个文件或选取目录(注意不同的模式返回的数据格式是不一样的)

self.path=open.getOpenFileName()#选择一个文件
self.path=open.getOpenFileNames()#选择多个文件
self.path =open.getExistingDirectory()#选择目录

下面是完整的选择多个文件的代码

from PyQt5.QtWidgets import *
from PyQt5.QtGui import *
from PyQt5.QtCore import *
import sys,os
class SelectDialog(QDialog):
    def __init__(self, parent=None):
        super(SelectDialog, self).__init__(parent)
        self.path = os.getcwd()
        self.initUI()
        self.setWindowTitle("选择")
        self.resize(240, 100)
    def initUI(self):
        grid = QGridLayout()
        grid.addWidget(QLabel("路径:"), 0, 0)
        self.pathLineEdit = QLineEdit()
        self.pathLineEdit.setFixedWidth(200)
        self.pathLineEdit.setText(self.path)
        grid.addWidget(self.pathLineEdit, 0, 1)
        button = QPushButton("更改")
        button.clicked.connect(self.changePath)
        grid.addWidget(button, 0, 2)
        #grid.addWidget(QLabel("<font color='#ff0000'>包含Keywords.xml、Avatar,AvatarSet,Market.xls的路径</font>"), 1, 0, 1, 3)
        buttonBox = QDialogButtonBox()
        buttonBox.setOrientation(Qt.Horizontal)  # 设置为水平方向
        buttonBox.setStandardButtons(QDialogButtonBox.Ok|QDialogButtonBox.Cancel)
        buttonBox.button(QDialogButtonBox.Ok).setText('选择')
        buttonBox.button(QDialogButtonBox.Cancel).setText('取消')
        buttonBox.accepted.connect(self.accept)  # 确定
        buttonBox.rejected.connect(self.reject)  # 取消
        grid.addWidget(buttonBox, 2, 1)
        self.setLayout(grid)
    def changePath(self):
        open = QFileDialog()
        #self.path=open.getOpenFileName()
        self.path=open.getOpenFileNames()
        print(self.path)
        #self.path = open.getExistingDirectory()
        self.pathLineEdit.setText(self.path[0][0])
if __name__ == '__main__':
    app = QApplication(sys.argv)
    dialog = SelectDialog()
    if dialog.exec_():
        pass



微信号:kelicom QQ群:215861553 紧急求助须知
Win32/PHP/JS/Android/Python