Просмотрите файл и используйте его путь в другом файле
У меня проблемы с PyQt5. Я пытаюсь создать программу, которая просматривает файл, и когда файл найден, он сохраняет путь в памяти, и когда я нажимаю кнопку, он запускает другой файл.py, используя путь из обзора. Вот что я смог сделать до сих пор.
File1.py
from PyQt5 import QtCore, QtGui, QtWidgets
class Ui_DE(object):
def setupUi(self, DE):
DE.setObjectName("DE")
DE.resize(1149, 517)
font = QtGui.QFont()
font.setPointSize(10)
DE.setFont(font)
# The "browse" button
self.GermanyBrowse = QtWidgets.QPushButton(DE)
self.GermanyBrowse.setGeometry(QtCore.QRect(240, 60, 91, 21))
self.GermanyBrowse.setObjectName("GermanyBrowse")
self.GermanyBrowse.clicked.connect(self.getfile)
# The run button
self.Run = QtWidgets.QPushButton(DE)
self.Run.setGeometry(QtCore.QRect(500, 460, 156, 23))
self.Run.setObjectName("Run")
self.Run.clicked.connect(self.runFile())
self.retranslateUi(DE)
def retranslateUi(self, DE):
_translate = QtCore.QCoreApplication.translate
DE.setWindowTitle(_translate("DE", "Title"))
self.Run.setText(_translate("DE", "Run"))
self.GermanyBrowse.setText(_translate("DE", "Browse"))
def getfile(self):
fileName, _ = QtWidgets.QFileDialog.getOpenFileName(
None,
"Select file",
"",
"*.xlsx", )
return fileName
def runFile(self):
import File2.py
file2.name_of_file()
if __name__ == "__main__":
import sys
app = QtWidgets.QApplication(sys.argv)
DE = QtWidgets.QDialog()
ui = Ui_DE()
ui.setupUi(DE)
DE.show()
sys.exit(app.exec_())
File2.py
import File1
x = File1.Ui_DE.getfile(GermanyBrowse)
def name_of_file(str):
alert = QtWidgets.QMessageBox()
alert.setText(f"You have opnened {str}")
alert.exec_()
"NameError: имя" GermanyBrowse "не определено" - это то, что я получаю при запуске File2.py
Мой вопрос, как я могу назвать путь от "self.GermanyBrowse.clicked.connect (self.getfile) от File1.py до File2.py в виде строки.
Спасибо!
1 ответ
Решение
Попытайся:
file1.py
from PyQt5 import QtCore, QtGui, QtWidgets
class Ui_DE(object):
def setupUi(self, DE):
DE.setObjectName("DE")
DE.resize(1149, 517)
font = QtGui.QFont()
font.setPointSize(10)
DE.setFont(font)
# The "browse" button
self.GermanyBrowse = QtWidgets.QPushButton(DE)
self.GermanyBrowse.setGeometry(QtCore.QRect(240, 60, 91, 21))
self.GermanyBrowse.setObjectName("GermanyBrowse")
self.GermanyBrowse.clicked.connect(self.getfile)
# The run button
self.Run = QtWidgets.QPushButton(DE)
self.Run.setGeometry(QtCore.QRect(500, 460, 156, 23))
self.Run.setObjectName("Run")
self.Run.clicked.connect(self.runFile) # - ()
self.retranslateUi(DE)
def retranslateUi(self, DE):
_translate = QtCore.QCoreApplication.translate
DE.setWindowTitle(_translate("DE", "Title"))
self.Run.setText(_translate("DE", "Run"))
self.GermanyBrowse.setText(_translate("DE", "Browse"))
def getfile(self):
fileName, _ = QtWidgets.QFileDialog.getOpenFileName(
None,
"Select file",
"",
"*.xlsx", )
return fileName
def runFile(self):
import file2 # --- File2.py
file2.name_of_file(file2.x) # +++ (file2.x)
if __name__ == "__main__":
import sys
app = QtWidgets.QApplication(sys.argv)
DE = QtWidgets.QDialog()
ui = Ui_DE()
ui.setupUi(DE)
DE.show()
sys.exit(app.exec_())
file2.py
from PyQt5 import QtWidgets # +++
import file1 # - DailyMCI, + file1
#x = DailyMCI.Ui_DE.getfile(GermanyBrowse) # ---
x = file1.Ui_DE.getfile(file1.Ui_DE) # +++
def name_of_file(str):
alert = QtWidgets.QMessageBox()
alert.setText("You have opnened {str}".format(str=str)) # I have python 3.5 (f"You have opnened {str}")
alert.exec_()