Skip to content

Instantly share code, notes, and snippets.

@eyllanesc
Created October 25, 2017 17:20
Show Gist options
  • Save eyllanesc/5384f0a3891f9666ba63f6a32a8762ee to your computer and use it in GitHub Desktop.
Save eyllanesc/5384f0a3891f9666ba63f6a32a8762ee to your computer and use it in GitHub Desktop.
from PyQt5 import QtWidgets
from testCloseEventDialog import TestDialog
from testCloseEventMain import TestMain
class newDialog(QtWidgets.QDialog, TestDialog):
def __init__(self, *args, **kwargs):
QtWidgets.QDialog.__init__(self, *args, **kwargs)
self.setupUi(self)
self.btnClose.clicked.connect(self.exitWindow)
def exitWindow(self):
print("close button pressed in test dialog window")
self.close()
def closeEvent(self, event):
print("executing close event in test dialog window")
QtWidgets.QDialog.closeEvent(self, event)
class newMain(QtWidgets.QMainWindow, TestMain):
def __init__(self, *args, **kwargs):
QtWidgets.QMainWindow.__init__(self, *args, **kwargs)
self.setupUi(self)
self.btnOpenDialog.clicked.connect(self.openDialog)
self.btnClose.clicked.connect(self.closeBtnPushed)
self.popNewDialog = newDialog()
def openDialog(self):
self.popNewDialog.show()
def closeBtnPushed(self):
print("close button pressed in main window")
self.close()
def closeEvent(self, event):
self.popNewDialog.close()
print("executing closing event in main window")
QtWidgets.QMainWindow.closeEvent(self, event)
if __name__ == "__main__":
import sys
app = QtWidgets.QApplication(sys.argv)
w = newMain()
w.show()
sys.exit(app.exec_())
from PyQt5 import QtCore, QtGui, QtWidgets
class TestDialog(object):
def setupUi(self, DialogTest):
DialogTest.resize(200, 100)
DialogTest.setWindowTitle("DialogTest")
self.btnClose = QtWidgets.QPushButton()
self.btnClose.setText("Close")
self.verticalLayout = QtWidgets.QVBoxLayout(DialogTest)
self.verticalLayout.addWidget(self.btnClose)
QtCore.QMetaObject.connectSlotsByName(DialogTest)
if __name__ == "__main__":
import sys
app = QtWidgets.QApplication(sys.argv)
DialogTest = QtWidgets.QWidget()
ui = TestDialog()
ui.setupUi(DialogTest)
DialogTest.show()
sys.exit(app.exec_())
from PyQt5 import QtCore, QtGui, QtWidgets
class TestMain(object):
def setupUi(self, MainWindow):
MainWindow.setObjectName("MainWindow")
MainWindow.resize(300, 100)
self.centralwidget = QtWidgets.QWidget(MainWindow)
self.btnOpenDialog = QtWidgets.QPushButton()
self.btnClose = QtWidgets.QPushButton()
self.verticalLayout = QtWidgets.QVBoxLayout(self.centralwidget)
self.verticalLayout.addWidget(self.btnOpenDialog)
self.verticalLayout.addWidget(self.btnClose)
MainWindow.setCentralWidget(self.centralwidget)
self.retranslateUi(MainWindow)
QtCore.QMetaObject.connectSlotsByName(MainWindow)
def retranslateUi(self, MainWindow):
_translate = QtCore.QCoreApplication.translate
MainWindow.setWindowTitle(_translate("MainWindow", "MainWindow"))
self.btnOpenDialog.setText(_translate("MainWindow", "Open Dialog"))
self.btnClose.setText(_translate("MainWindow", "Close"))
if __name__ == "__main__":
import sys
app = QtWidgets.QApplication(sys.argv)
MainWindow = QtWidgets.QMainWindow()
ui = TestMain()
ui.setupUi(MainWindow)
MainWindow.show()
sys.exit(app.exec_())
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment