Здравствуйте. Из-за маленького срока изучения языка возникла следующая проблема. Назначила кнопке «Открыть» действие вызова диалогового окна поcредством QFileDialog (необходимо выбрать Exsel файл). Также есть отдельный модуль, который открывает файл Exsel с помощью Pandas и производит считывание данных в списки и работает дальше с ними. Вопрос в следующем, как передать Pandas открытый с помощью QFileDialog файл Exsel? Удобно оказалось работать с пандасом. Спасибо. Код моей формочки
from PyQt5 import QtCore, QtGui, QtWidgets
import sys
class Ui_Coll(object):
def setupUi(self, Coll):
Coll.setObjectName("Coll")
Coll.setFixedSize(807, 562)
self.widget = QtWidgets.QWidget(Coll)
self.widget.setObjectName("widget")
self.build_coll = QtWidgets.QPushButton(self.widget)
self.build_coll.setGeometry(QtCore.QRect(10, 100, 371, 23))
font = QtGui.QFont()
font.setFamily("Times New Roman")
font.setPointSize(9)
self.build_coll.setFont(font)
self.build_coll.setObjectName("build_coll")
self.groupBox = QtWidgets.QGroupBox(self.widget)
self.groupBox.setGeometry(QtCore.QRect(10, 140, 781, 380))
self.groupBox.setTitle("")
self.groupBox.setObjectName("groupBox")
self.type_coll = QtWidgets.QPushButton(self.widget)
self.type_coll.setGeometry(QtCore.QRect(420, 100, 361, 23))
font = QtGui.QFont()
font.setFamily("Times New Roman")
font.setPointSize(9)
self.type_coll.setFont(font)
self.type_coll.setObjectName("type_coll")
self.select_auth = QtWidgets.QComboBox(self.widget)
self.select_auth.setGeometry(QtCore.QRect(420, 10, 361, 20))
self.select_auth.setObjectName("select_auth")
self.label_3 = QtWidgets.QLabel(self.widget)
self.label_3.setGeometry(QtCore.QRect(10, 40, 245, 17))
font = QtGui.QFont()
font.setFamily("Times New Roman")
font.setPointSize(11)
self.label_3.setFont(font)
self.label_3.setLayoutDirection(QtCore.Qt.LeftToRight)
self.label_3.setObjectName("label_3")
self.label_2 = QtWidgets.QLabel(self.widget)
self.label_2.setGeometry(QtCore.QRect(10, 60, 24, 19))
font = QtGui.QFont()
font.setFamily("Times New Roman")
font.setPointSize(12)
self.label_2.setFont(font)
self.label_2.setObjectName("label_2")
self.label = QtWidgets.QLabel(self.widget)
self.label.setGeometry(QtCore.QRect(420, 60, 24, 19))
font = QtGui.QFont()
font.setFamily("Times New Roman")
font.setPointSize(12)
self.label.setFont(font)
self.label.setObjectName("label")
self.load_auth = QtWidgets.QPushButton(self.widget)
self.load_auth.setGeometry(QtCore.QRect(10, 10, 381, 23))
font = QtGui.QFont()
font.setFamily("Times New Roman")
font.setPointSize(9)
self.load_auth.setFont(font)
self.load_auth.setObjectName("load_auth")
self.label_4 = QtWidgets.QLabel(self.widget)
self.label_4.setGeometry(QtCore.QRect(420, 40, 340, 17))
font = QtGui.QFont()
font.setFamily("Times New Roman")
font.setPointSize(11)
self.label_4.setFont(font)
self.label_4.setObjectName("label_4")
Coll.setCentralWidget(self.widget)
self.menubar = QtWidgets.QMenuBar(Coll)
self.menubar.setGeometry(QtCore.QRect(0, 0, 807, 21))
self.menubar.setObjectName("menubar")
self.menu = QtWidgets.QMenu(self.menubar)
self.menu.setObjectName("menu")
Coll.setMenuBar(self.menubar)
self.open = QtWidgets.QAction(Coll)
self.open.setObjectName("open")
self.open.setShortcut('Ctrl+O')
self.save = QtWidgets.QAction(Coll)
self.save.setObjectName("save")
self.save.setShortcut('Ctrl+S')
self.exit = QtWidgets.QAction(Coll)
self.exit.setObjectName("exit")
self.exit.setShortcut('Ctrl+Q')
self.menu.addAction(self.open)
self.menu.addAction(self.save)
self.menu.addAction(self.exit)
self.menubar.addAction(self.menu.menuAction())
self.retranslateUi(Coll)
QtCore.QMetaObject.connectSlotsByName(Coll)
def retranslateUi(self, Coll):
_translate = QtCore.QCoreApplication.translate
Coll.setWindowTitle(_translate("Coll", "Collaboration"))
self.build_coll.setText(_translate("Coll", "Построить"))
self.type_coll.setText(_translate("Coll", "Определить тип"))
self.label_3.setText(_translate("Coll", "Количество"))
self.label_2.setText(_translate("Coll", "000"))
self.label.setText(_translate("Coll", "000"))
self.load_auth.setText(_translate("Coll", "Загрузить список"))
self.label_4.setText(_translate("Coll", "Средний:"))
self.menu.setTitle(_translate("Coll", "Файл"))
self.open.setText(_translate("Coll", "Открыть"))
self.save.setText(_translate("Coll", "Сохранить данные"))
self.exit.setText(_translate("Coll", "Выход"))
class MainWindow(QtWidgets.QMainWindow):
def __init__(self):
super().__init__()
self.ui = Ui_Coll()
self.ui.setupUi(self)
self.ui.open.triggered.connect(self.open_file)
self.ui.exit.triggered.connect(self.close)
self.show()
def open_file(self):
fname = QtWidgets.QFileDialog.getOpenFileName(self, 'Выберите файл', 'c:\\',
"Файлы Exsel (*.xlsx)",'/home')
return fname
def closeEvent(self, event):
def closed():
self.reply.close()
event.ignore()
self.reply = QtWidgets.QDialog()
self.reply.setWindowTitle("Выход из приложения")
vbox = QtWidgets.QVBoxLayout()
label_dialog = QtWidgets.QLabel()
label_dialog.setText('Вы действительно хотите выйти из приложения?')
button_yes = QtWidgets.QPushButton(self.reply)
button_yes.setText("Да")
button_yes.clicked.connect(lambda: self.reply.close())
button_no = QtWidgets.QPushButton(self.reply)
button_no.setText('Нет')
button_no.clicked.connect(closed)
layout = QtWidgets.QHBoxLayout()
layout.addWidget(button_yes)
layout.addWidget(button_no)
vbox.addWidget(label_dialog)
vbox.addSpacing(20)
vbox.addLayout(layout)
self.reply.setLayout(vbox)
self.reply.exec()
if __name__ == '__main__':
app = QtWidgets.QApplication(sys.argv)
dl = MainWindow()
sys.exit(app.exec_())