python - 跳转到另一个类后如何返回主类?
问题描述
我目前正在使用 Python 3.6 和 PyQt5 开发 GUI。
使用菜单栏我打开一个弹出窗口,但是当它关闭时,它被卡在另一个类中。我怎样才能回到我的主要课程?我包含了我的一些相关代码。一切正常,直到我单击菜单项并打开弹出窗口,在我单击所需的日期后,它关闭并出现错误,例如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
解决方案
推荐阅读
- php - laravel 请求索引无法列出数组分类
- three.js - DXGF 模型未显示在场景中
- swift - 如何从 AppDelegate 返回当前窗口
- angular - 打印 Validator for Reactive Form 的最小长度
- html - 使用 Bootstrap 4 的菜单栏不一致
- html - 无法从父组件在子组件中打开表单 - “无法读取属性 xxx”
- java - 可终结对象如何至少需要 2 个垃圾回收周期才能被回收?
- java - Java:无法理解如何从其他类调用实例
- javascript - 窗口对象中是否有 string.find() 的等价物?
- python - 使用 django rest 框架将数据保存到 Postgres DB