Что такое self в функции extract? Это же функция, а не метод класса? Тут явная ошибка.
И почему при вызове из main ей передается 2 параметра (year, month) a не имя директории?
Да и возвращает она None.
И, пардон, не понял, чего конкретно вы хотите добиться? Где в коде (на экране?) вам нужна информация из extract и какая именно?
import sys
from main_form import *
from work import *
from PyQt5 import QtCore, QtGui, QtWidgets
class MyWin(QtWidgets.QMainWindow):
def __init__(self, parent=None):
QtWidgets.QWidget.__init__(self, parent)
self.ui = Ui_MainWindow()
self.ui.setupUi(self)
self.ui.lineEdit.setPlaceholderText("Пример: 2018")
self.ui.lineEdit_2.setPlaceholderText("Пример: 07")
self.ui.pushButton.clicked.connect(self.Check)
self.show()
def Check(self):
year = self.ui.lineEdit.text()
month = self.ui.lineEdit_2.text()
mes = extract(year, month)
self.ui.textEdit.append(mes)
if __name__=="__main__":
app = QtWidgets.QApplication(sys.argv)
myapp = MyWin()
myapp.show()
sys.exit(app.exec_())
from PyQt5 import QtCore, QtGui, QtWidgets
class Ui_MainWindow(object):
def setupUi(self, MainWindow):
MainWindow.setObjectName("MainWindow")
MainWindow.resize(582, 534)
self.centralwidget = QtWidgets.QWidget(MainWindow)
self.centralwidget.setObjectName("centralwidget")
self.pushButton = QtWidgets.QPushButton(self.centralwidget)
self.pushButton.setGeometry(QtCore.QRect(360, 20, 211, 71))
font = QtGui.QFont()
font.setPointSize(25)
font.setBold(True)
font.setUnderline(False)
font.setWeight(75)
self.pushButton.setFont(font)
self.pushButton.setObjectName("pushButton")
self.textEdit = QtWidgets.QTextEdit(self.centralwidget)
self.textEdit.setGeometry(QtCore.QRect(10, 110, 561, 381))
self.textEdit.setObjectName("textEdit")
self.label = QtWidgets.QLabel(self.centralwidget)
self.label.setGeometry(QtCore.QRect(10, 20, 180, 25))
font = QtGui.QFont()
font.setPointSize(13)
font.setBold(True)
font.setWeight(75)
self.label.setFont(font)
self.label.setObjectName("label")
self.label_2 = QtWidgets.QLabel(self.centralwidget)
self.label_2.setGeometry(QtCore.QRect(10, 65, 201, 25))
font = QtGui.QFont()
font.setPointSize(13)
font.setBold(True)
font.setWeight(75)
self.label_2.setFont(font)
self.label_2.setObjectName("label_2")
self.lineEdit = QtWidgets.QLineEdit(self.centralwidget)
self.lineEdit.setGeometry(QtCore.QRect(220, 20, 113, 31))
self.lineEdit.setObjectName("lineEdit")
self.lineEdit_2 = QtWidgets.QLineEdit(self.centralwidget)
self.lineEdit_2.setGeometry(QtCore.QRect(220, 60, 113, 31))
self.lineEdit_2.setObjectName("lineEdit_2")
MainWindow.setCentralWidget(self.centralwidget)
self.menubar = QtWidgets.QMenuBar(MainWindow)
self.menubar.setGeometry(QtCore.QRect(0, 0, 582, 21))
self.menubar.setObjectName("menubar")
MainWindow.setMenuBar(self.menubar)
self.statusbar = QtWidgets.QStatusBar(MainWindow)
self.statusbar.setObjectName("statusbar")
MainWindow.setStatusBar(self.statusbar)
self.retranslateUi(MainWindow)
QtCore.QMetaObject.connectSlotsByName(MainWindow)
def retranslateUi(self, MainWindow):
_translate = QtCore.QCoreApplication.translate
MainWindow.setWindowTitle(_translate("MainWindow", "MainWindow"))
self.pushButton.setText(_translate("MainWindow", "Пуск"))
self.label.setText(_translate("MainWindow", "Введите год файла: "))
self.label_2.setText(_translate("MainWindow", "Введите месяц файла: "))
import zipfile
import timeit
import os
def extract(dir):
if os.listdir(dir):
for file in os.listdir(dir):
if os.path.isfile(dir+file):
time_start = timeit.default_timer()
with zipfile.ZipFile(dir + file, 'r') as zfile:
zfile.extractall(path='C:\\txt\\1\\')
zfile.close()
tm_wr = str(timeit.default_timer() - time_start)
self.textEdit.setText(tmp_zip + ' время обработки: ' + tm_wr[0: 5]) # в этом месте хочу отправить в виджет строки о разной информации обработки файла
все равно даже если курсор пустой или содержит записи, и именно при вызове из питона