В настоящее время я работаю над графическим интерфейсом, используя Python 3.6 и PyQt5.
В строке меню я открываю всплывающее окно, но когда оно закрывается, оно застревает в другом классе.Как я могу вернуться в свой основной класс?Я включаю некоторые соответствующие части моего кода.Все работает нормально, пока я не щелкну по пункту меню и не откроется всплывающее окно, после того как я нажму на нужную дату, оно закроется, и я получу ошибки, такие как MyPopup
объект не имеет атрибута (имя атрибута) '
from PyQt5 import QtCore, QtGui, QtWidgets
import xlrd
import datetime
class Ui_MainWindow(QtWidgets.QWidget):
def setupUi(self, MainWindow):
MainWindow.setObjectName("MainWindow")
MainWindow.setEnabled(True)
MainWindow.resize(1580, 1020)
MainWindow.setDockNestingEnabled(False)
import RAP_rc
icon = QtGui.QIcon()
icon.addPixmap(QtGui.QPixmap(":/Register/logo2.png"), QtGui.QIcon.Normal, QtGui.QIcon.Off)
MainWindow.setWindowIcon(icon)
# MainWindow.setWindowState(QtCore.Qt.WindowMaximized)
MainWindow.setWindowState(MainWindow.windowState() & ~QtCore.Qt.WindowMinimized | QtCore.Qt.WindowActive)
MainWindow.setFocus(QtCore.Qt.PopupFocusReason)
# MainWindow.activateWindow()
MainWindow.raise_()
self.statusbar.showMessage('User: Test')
self.actionCargar_Archivo_Base.triggered.connect(self.getxlsbase)
self.actionCargar_Archivo_Facturacion.triggered.connect(self.getxlsfacturacion)
self.actionCargar_Archivo_Salesforce.triggered.connect(self.getxlssf)
self.actionSeleccionar_Fecha.triggered.connect(self.openPopUp)
if self.actionSeleccionar_Fecha.isChecked():
date_text = str(date_select)
print(date_select)
self.label.setText(date_text)
def openPopUp(self):
self.pop = MyPopup()
self.pop.show()
def date_filter(self):
self.main = Ui_MainWindow.setupUi(self, MainWindow)
self.main.show()
date_text = str(date_select)
print(date_select)
self.label.setText(date_text)
class MyPopup(QtWidgets.QWidget):
def __init__(self):
QtWidgets.QWidget.__init__(self)
import RAP_rc
icon = QtGui.QIcon()
icon.addPixmap(QtGui.QPixmap(":/Register/logo2.png"), QtGui.QIcon.Normal, QtGui.QIcon.Off)
self.setWindowIcon(icon)
self.setFixedSize(392, 241)
self.setWindowTitle('Fecha')
self.calendarWidget = QtWidgets.QCalendarWidget(self)
self.calendarWidget.setGeometry(QtCore.QRect(0, 0, 392, 241))
self.calendarWidget.setObjectName("calendarWidget")
self.calendarWidget.clicked.connect(self.select_date)
def select_date(self):
global date_select
date_select=self.calendarWidget.selectedDate().toPyDate()
selected_month = date_select.month
selected_year = date_select.year
print('Month ', selected_month, '\n', 'Year ', selected_year)
self.close()
Ui_MainWindow.date_filter(self)
return date_select
if __name__ == "__main__":
import sys
app = QtWidgets.QApplication(sys.argv)
MainWindow = QtWidgets.QMainWindow()
ui = Ui_MainWindow()
ui.setupUi(MainWindow)
MainWindow.show()
sys.exit(app.exec_())
полный код можно посмотреть здесь https://github.com/liesugahara/Practicas/blob/master/Test