C'est la première fois que je tente de créer une interface graphique. J'ai créé un programme simple avec un bouton qui est censé ouvrir le navigateur de fichiers et retourner ce fichier. Je sais que PyQt5 a des commandes de dialogue de fichier intégrées, mais elles ne fonctionnent pas pour moi. J'ai essayé d'utiliser le tutoriel trouvé sur https://pythonspot.com/en/pyqt5-file-dialog/. J'ai également essayé plusieurs autres approches en ligne. Je ne peux pas penser à une raison pour laquelle cela ne fonctionne pas.La boîte de dialogue de fichier ne fonctionne pas avec PyQt5?
import sys, os
from PyQt5.QtWidgets import QMainWindow, QApplication, QWidget, QInputDialog, QLineEdit, QFileDialog
from PyQt5 import QtCore, QtGui, QtWidgets
from PyQt5.QtGui import QIcon
class Ui_Form(object):
def setupUi(self, Form):
Form.setObjectName("Form")
Form.resize(1082, 800)
self.horizontalLayout_2 = QtWidgets.QHBoxLayout(Form)
self.horizontalLayout_2.setObjectName("horizontalLayout_2")
self.horizontalLayout = QtWidgets.QHBoxLayout()
self.horizontalLayout.setObjectName("horizontalLayout")
self.pushButton = QtWidgets.QPushButton(Form)
self.pushButton.setObjectName("pushButton")
self.horizontalLayout.addWidget(self.pushButton)
self.horizontalLayout_2.addLayout(self.horizontalLayout)
self.retranslateUi(Form)
QtCore.QMetaObject.connectSlotsByName(Form)
self.pushButton.clicked.connect(self.openFile)
def retranslateUi(self, Form):
_translate = QtCore.QCoreApplication.translate
Form.setWindowTitle(_translate("Form", "Form"))
self.pushButton.setText(_translate("Form", "PushButton"))
# FUNCTION BELOW NOT WORKING
def openFile(self):
options = QFileDialog.Options()
options |= QFileDialog.DontUseNativeDialog
fileName, _ = QFileDialog.getOpenFileName(self,"QFileDialog.getOpenFileName()", "","All Files (*);;Python Files (*.py)", options=options)
if fileName:
print(fileName)
if __name__ == "__main__":
import sys
app = QtWidgets.QApplication(sys.argv)
Form = QtWidgets.QWidget()
ui = Ui_Form()
ui.setupUi(Form)
Form.show()
sys.exit(app.exec_())
fonctionne parfaitement. –
J'ai également trouvé une autre solution (que j'ai posté ci-dessous). Quelle est la différence de fonctionnalité entre les deux solutions? –
@ J.Doe que s'est-il passé? – eyllanesc