1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60
| #!/usr/bin/python
# -*- coding: utf-8 -*-
# Python 3 PyQt5
import sys, os
from PyQt5 import (QtCore, QtGui, QtWidgets)
#############################################################################
class FileDialog(QtWidgets.QFileDialog):
#========================================================================
def __init__(self, *args, **kwargs):
super().__init__(*args, **kwargs)
#========================================================================
def getOpenFileName(self, parent=None,
caption="Sélectionnez un fichier",
dir=".",
filter="All files (*.*)",
selectedFilter="",
options=None):
#--------------------------------------------------------------------
# configuration de la fenêtre de dialogue: à vérifier que c'est complet!
self.setWindowTitle(caption)
self.setDirectory(dir)
self.setNameFilter(filter)
self.setFileMode(QtWidgets.QFileDialog.ExistingFile)
self.setAcceptMode(QtWidgets.QFileDialog.AcceptOpen) # bouton "Ouvrir"
if selectedFilter!="":
self.selectNameFilter(selectedFilter)
if options!=None:
self.setOptions(options)
self.setOption(QtWidgets.QFileDialog.DontUseNativeDialog, True)
#--------------------------------------------------------------------
# on ajoute un QCheckBox à la fenêtre de dialogue
layout = self.layout()
self.cbox = QtWidgets.QCheckBox("Mon checkbox", self)
layout.addWidget(self.cbox, 4, 0)
self.setLayout(layout)
# on va cocher la case à titre d'exemple
self.cbox.setCheckState(QtCore.Qt.Checked)
#--------------------------------------------------------------------
# interaction avec l'utilisateur et retour du résultat
if self.exec_():
return list(self.selectedFiles())[0]
else:
return ""
#############################################################################
if __name__ == '__main__':
app = QtWidgets.QApplication(sys.argv)
fileDialog = FileDialog()
fichier = fileDialog.getOpenFileName(None, "titre")
print(fichier) |
Partager