Skip to content

Instantly share code, notes, and snippets.

@fmorency
Created July 4, 2012 19:58
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save fmorency/3049256 to your computer and use it in GitHub Desktop.
Save fmorency/3049256 to your computer and use it in GitHub Desktop.
Create GUI programmatically. Events propagate correctly.
PySide.QtCore.QEvent.Type.ChildAdded <PySide.QtGui.QFrame object at 0x189aa28>
PySide.QtCore.QEvent.Type.ParentChange <PySide.QtGui.QFrame object at 0x189aa28>
PySide.QtCore.QEvent.Type.Polish <PySide.QtGui.QFrame object at 0x189aa28>
PySide.QtCore.QEvent.Type(70) <PySide.QtGui.QFrame object at 0x189aa28>
PySide.QtCore.QEvent.Type.ChildAdded <PySide.QtGui.QFrame object at 0x189aa70>
PySide.QtCore.QEvent.Type.ParentChange <PySide.QtGui.QFrame object at 0x189aa70>
PySide.QtCore.QEvent.Type.Polish <PySide.QtGui.QFrame object at 0x189aa70>
PySide.QtCore.QEvent.Type(70) <PySide.QtGui.QFrame object at 0x189aa70>
PySide.QtCore.QEvent.Type.Move <PySide.QtGui.QFrame object at 0x189aa28>
PySide.QtCore.QEvent.Type.Resize <PySide.QtGui.QFrame object at 0x189aa28>
PySide.QtCore.QEvent.Type.WindowStateChange <PySide.QtGui.QFrame object at 0x189aa28>
PySide.QtCore.QEvent.Type.WindowStateChange <PySide.QtGui.QFrame object at 0x189aa28>
PySide.QtCore.QEvent.Type.Show <PySide.QtGui.QFrame object at 0x189aa28>
PySide.QtCore.QEvent.Type.ShowToParent <PySide.QtGui.QFrame object at 0x189aa28>
PySide.QtCore.QEvent.Type.WindowStateChange <PySide.QtGui.QFrame object at 0x189aa28>
PySide.QtCore.QEvent.Type.Move <PySide.QtGui.QFrame object at 0x189aa70>
PySide.QtCore.QEvent.Type.Resize <PySide.QtGui.QFrame object at 0x189aa70>
PySide.QtCore.QEvent.Type.WindowStateChange <PySide.QtGui.QFrame object at 0x189aa70>
PySide.QtCore.QEvent.Type.WindowStateChange <PySide.QtGui.QFrame object at 0x189aa28>
PySide.QtCore.QEvent.Type.WindowStateChange <PySide.QtGui.QFrame object at 0x189aa70>
PySide.QtCore.QEvent.Type.Show <PySide.QtGui.QFrame object at 0x189aa70>
PySide.QtCore.QEvent.Type.ShowToParent <PySide.QtGui.QFrame object at 0x189aa70>
PySide.QtCore.QEvent.Type.WindowStateChange <PySide.QtGui.QFrame object at 0x189aa70>
PySide.QtCore.QEvent.Type.WindowStateChange <PySide.QtGui.QFrame object at 0x189aa70>
PySide.QtCore.QEvent.Type(67) <PySide.QtGui.QFrame object at 0x189aa28>
PySide.QtCore.QEvent.Type(67) <PySide.QtGui.QFrame object at 0x189aa70>
PySide.QtCore.QEvent.Type.PolishRequest <PySide.QtGui.QFrame object at 0x189aa28>
PySide.QtCore.QEvent.Type.PolishRequest <PySide.QtGui.QFrame object at 0x189aa70>
PySide.QtCore.QEvent.Type.LayoutRequest <PySide.QtGui.QFrame object at 0x189aa28>
PySide.QtCore.QEvent.Type.LayoutRequest <PySide.QtGui.QFrame object at 0x189aa70>
PySide.QtCore.QEvent.Type.Paint <PySide.QtGui.QFrame object at 0x189aa28>
PySide.QtCore.QEvent.Type.Paint <PySide.QtGui.QFrame object at 0x189aa70>
PySide.QtCore.QEvent.Type.WindowActivate <PySide.QtGui.QFrame object at 0x189aa28>
PySide.QtCore.QEvent.Type.WindowActivate <PySide.QtGui.QFrame object at 0x189aa70>
PySide.QtCore.QEvent.Type.Paint <PySide.QtGui.QFrame object at 0x189aa28>
PySide.QtCore.QEvent.Type.Paint <PySide.QtGui.QFrame object at 0x189aa70>
PySide.QtCore.QEvent.Type.Paint <PySide.QtGui.QFrame object at 0x189aa28>
PySide.QtCore.QEvent.Type.Paint <PySide.QtGui.QFrame object at 0x189aa70>
PySide.QtCore.QEvent.Type.Paint <PySide.QtGui.QFrame object at 0x189aa28>
PySide.QtCore.QEvent.Type.Paint <PySide.QtGui.QFrame object at 0x189aa70>
PySide.QtCore.QEvent.Type.Enter <PySide.QtGui.QFrame object at 0x189aa28>
PySide.QtCore.QEvent.Type.Leave <PySide.QtGui.QFrame object at 0x189aa28>
PySide.QtCore.QEvent.Type.WindowStateChange <PySide.QtGui.QFrame object at 0x189aa28>
PySide.QtCore.QEvent.Type.WindowStateChange <PySide.QtGui.QFrame object at 0x189aa70>
PySide.QtCore.QEvent.Type.Paint <PySide.QtGui.QFrame object at 0x189aa28>
PySide.QtCore.QEvent.Type.Resize <PySide.QtGui.QFrame object at 0x189aa28>
PySide.QtCore.QEvent.Type.Paint <PySide.QtGui.QFrame object at 0x189aa28>
PySide.QtCore.QEvent.Type.Resize <PySide.QtGui.QFrame object at 0x189aa28>
PySide.QtCore.QEvent.Type.Paint <PySide.QtGui.QFrame object at 0x189aa28>
PySide.QtCore.QEvent.Type.Resize <PySide.QtGui.QFrame object at 0x189aa28>
PySide.QtCore.QEvent.Type.Paint <PySide.QtGui.QFrame object at 0x189aa28>
PySide.QtCore.QEvent.Type.Resize <PySide.QtGui.QFrame object at 0x189aa28>
PySide.QtCore.QEvent.Type.Paint <PySide.QtGui.QFrame object at 0x189aa28>
PySide.QtCore.QEvent.Type.Resize <PySide.QtGui.QFrame object at 0x189aa28>
PySide.QtCore.QEvent.Type.Paint <PySide.QtGui.QFrame object at 0x189aa28>
PySide.QtCore.QEvent.Type.Resize <PySide.QtGui.QFrame object at 0x189aa28>
PySide.QtCore.QEvent.Type.Paint <PySide.QtGui.QFrame object at 0x189aa28>
PySide.QtCore.QEvent.Type.Resize <PySide.QtGui.QFrame object at 0x189aa28>
PySide.QtCore.QEvent.Type.Paint <PySide.QtGui.QFrame object at 0x189aa28>
PySide.QtCore.QEvent.Type.Resize <PySide.QtGui.QFrame object at 0x189aa28>
PySide.QtCore.QEvent.Type.Paint <PySide.QtGui.QFrame object at 0x189aa28>
PySide.QtCore.QEvent.Type.Resize <PySide.QtGui.QFrame object at 0x189aa28>
PySide.QtCore.QEvent.Type.Paint <PySide.QtGui.QFrame object at 0x189aa28>
PySide.QtCore.QEvent.Type.Resize <PySide.QtGui.QFrame object at 0x189aa28>
PySide.QtCore.QEvent.Type.Paint <PySide.QtGui.QFrame object at 0x189aa28>
PySide.QtCore.QEvent.Type.Resize <PySide.QtGui.QFrame object at 0x189aa28>
PySide.QtCore.QEvent.Type.Paint <PySide.QtGui.QFrame object at 0x189aa28>
PySide.QtCore.QEvent.Type.Resize <PySide.QtGui.QFrame object at 0x189aa28>
PySide.QtCore.QEvent.Type.Paint <PySide.QtGui.QFrame object at 0x189aa28>
PySide.QtCore.QEvent.Type.Resize <PySide.QtGui.QFrame object at 0x189aa28>
PySide.QtCore.QEvent.Type.Paint <PySide.QtGui.QFrame object at 0x189aa28>
PySide.QtCore.QEvent.Type.Resize <PySide.QtGui.QFrame object at 0x189aa28>
PySide.QtCore.QEvent.Type.Paint <PySide.QtGui.QFrame object at 0x189aa28>
PySide.QtCore.QEvent.Type.Resize <PySide.QtGui.QFrame object at 0x189aa28>
PySide.QtCore.QEvent.Type.Paint <PySide.QtGui.QFrame object at 0x189aa28>
PySide.QtCore.QEvent.Type.Resize <PySide.QtGui.QFrame object at 0x189aa28>
PySide.QtCore.QEvent.Type.Paint <PySide.QtGui.QFrame object at 0x189aa28>
PySide.QtCore.QEvent.Type.Resize <PySide.QtGui.QFrame object at 0x189aa28>
PySide.QtCore.QEvent.Type.Paint <PySide.QtGui.QFrame object at 0x189aa28>
PySide.QtCore.QEvent.Type.Resize <PySide.QtGui.QFrame object at 0x189aa28>
PySide.QtCore.QEvent.Type.Paint <PySide.QtGui.QFrame object at 0x189aa28>
PySide.QtCore.QEvent.Type.Resize <PySide.QtGui.QFrame object at 0x189aa28>
PySide.QtCore.QEvent.Type.Paint <PySide.QtGui.QFrame object at 0x189aa28>
PySide.QtCore.QEvent.Type.Resize <PySide.QtGui.QFrame object at 0x189aa28>
PySide.QtCore.QEvent.Type.Paint <PySide.QtGui.QFrame object at 0x189aa28>
PySide.QtCore.QEvent.Type.Resize <PySide.QtGui.QFrame object at 0x189aa28>
PySide.QtCore.QEvent.Type.Paint <PySide.QtGui.QFrame object at 0x189aa28>
PySide.QtCore.QEvent.Type.Resize <PySide.QtGui.QFrame object at 0x189aa28>
PySide.QtCore.QEvent.Type.Paint <PySide.QtGui.QFrame object at 0x189aa28>
PySide.QtCore.QEvent.Type.Resize <PySide.QtGui.QFrame object at 0x189aa28>
PySide.QtCore.QEvent.Type.Paint <PySide.QtGui.QFrame object at 0x189aa28>
PySide.QtCore.QEvent.Type.Resize <PySide.QtGui.QFrame object at 0x189aa28>
PySide.QtCore.QEvent.Type.Paint <PySide.QtGui.QFrame object at 0x189aa28>
PySide.QtCore.QEvent.Type.Resize <PySide.QtGui.QFrame object at 0x189aa28>
PySide.QtCore.QEvent.Type.Paint <PySide.QtGui.QFrame object at 0x189aa28>
PySide.QtCore.QEvent.Type.Resize <PySide.QtGui.QFrame object at 0x189aa28>
PySide.QtCore.QEvent.Type.Paint <PySide.QtGui.QFrame object at 0x189aa28>
PySide.QtCore.QEvent.Type.Resize <PySide.QtGui.QFrame object at 0x189aa28>
PySide.QtCore.QEvent.Type.Paint <PySide.QtGui.QFrame object at 0x189aa28>
PySide.QtCore.QEvent.Type.Resize <PySide.QtGui.QFrame object at 0x189aa28>
PySide.QtCore.QEvent.Type.Paint <PySide.QtGui.QFrame object at 0x189aa28>
PySide.QtCore.QEvent.Type.Resize <PySide.QtGui.QFrame object at 0x189aa28>
PySide.QtCore.QEvent.Type.Paint <PySide.QtGui.QFrame object at 0x189aa28>
PySide.QtCore.QEvent.Type.Resize <PySide.QtGui.QFrame object at 0x189aa28>
PySide.QtCore.QEvent.Type.Paint <PySide.QtGui.QFrame object at 0x189aa28>
PySide.QtCore.QEvent.Type.Resize <PySide.QtGui.QFrame object at 0x189aa28>
PySide.QtCore.QEvent.Type.Paint <PySide.QtGui.QFrame object at 0x189aa28>
PySide.QtCore.QEvent.Type.Resize <PySide.QtGui.QFrame object at 0x189aa28>
PySide.QtCore.QEvent.Type.Paint <PySide.QtGui.QFrame object at 0x189aa28>
PySide.QtCore.QEvent.Type.Resize <PySide.QtGui.QFrame object at 0x189aa28>
PySide.QtCore.QEvent.Type.Paint <PySide.QtGui.QFrame object at 0x189aa28>
PySide.QtCore.QEvent.Type.Resize <PySide.QtGui.QFrame object at 0x189aa28>
PySide.QtCore.QEvent.Type.Paint <PySide.QtGui.QFrame object at 0x189aa28>
PySide.QtCore.QEvent.Type.Resize <PySide.QtGui.QFrame object at 0x189aa28>
PySide.QtCore.QEvent.Type.Paint <PySide.QtGui.QFrame object at 0x189aa28>
PySide.QtCore.QEvent.Type.Resize <PySide.QtGui.QFrame object at 0x189aa28>
PySide.QtCore.QEvent.Type.Paint <PySide.QtGui.QFrame object at 0x189aa28>
PySide.QtCore.QEvent.Type.Resize <PySide.QtGui.QFrame object at 0x189aa28>
PySide.QtCore.QEvent.Type.Paint <PySide.QtGui.QFrame object at 0x189aa28>
PySide.QtCore.QEvent.Type.Resize <PySide.QtGui.QFrame object at 0x189aa28>
PySide.QtCore.QEvent.Type.Paint <PySide.QtGui.QFrame object at 0x189aa28>
PySide.QtCore.QEvent.Type.Resize <PySide.QtGui.QFrame object at 0x189aa28>
PySide.QtCore.QEvent.Type.Paint <PySide.QtGui.QFrame object at 0x189aa28>
PySide.QtCore.QEvent.Type.Resize <PySide.QtGui.QFrame object at 0x189aa28>
PySide.QtCore.QEvent.Type.Paint <PySide.QtGui.QFrame object at 0x189aa28>
PySide.QtCore.QEvent.Type.Resize <PySide.QtGui.QFrame object at 0x189aa28>
PySide.QtCore.QEvent.Type.Paint <PySide.QtGui.QFrame object at 0x189aa28>
PySide.QtCore.QEvent.Type.Resize <PySide.QtGui.QFrame object at 0x189aa28>
PySide.QtCore.QEvent.Type.Paint <PySide.QtGui.QFrame object at 0x189aa28>
PySide.QtCore.QEvent.Type.Resize <PySide.QtGui.QFrame object at 0x189aa28>
PySide.QtCore.QEvent.Type.Paint <PySide.QtGui.QFrame object at 0x189aa28>
PySide.QtCore.QEvent.Type.Resize <PySide.QtGui.QFrame object at 0x189aa28>
PySide.QtCore.QEvent.Type.Paint <PySide.QtGui.QFrame object at 0x189aa28>
PySide.QtCore.QEvent.Type.Resize <PySide.QtGui.QFrame object at 0x189aa28>
PySide.QtCore.QEvent.Type.Paint <PySide.QtGui.QFrame object at 0x189aa28>
PySide.QtCore.QEvent.Type.Resize <PySide.QtGui.QFrame object at 0x189aa28>
PySide.QtCore.QEvent.Type.Paint <PySide.QtGui.QFrame object at 0x189aa28>
PySide.QtCore.QEvent.Type.Resize <PySide.QtGui.QFrame object at 0x189aa28>
PySide.QtCore.QEvent.Type.Paint <PySide.QtGui.QFrame object at 0x189aa28>
PySide.QtCore.QEvent.Type.Resize <PySide.QtGui.QFrame object at 0x189aa28>
PySide.QtCore.QEvent.Type.Paint <PySide.QtGui.QFrame object at 0x189aa28>
PySide.QtCore.QEvent.Type.Resize <PySide.QtGui.QFrame object at 0x189aa28>
PySide.QtCore.QEvent.Type.Paint <PySide.QtGui.QFrame object at 0x189aa28>
PySide.QtCore.QEvent.Type.Resize <PySide.QtGui.QFrame object at 0x189aa28>
PySide.QtCore.QEvent.Type.Paint <PySide.QtGui.QFrame object at 0x189aa28>
PySide.QtCore.QEvent.Type.Resize <PySide.QtGui.QFrame object at 0x189aa28>
PySide.QtCore.QEvent.Type.Paint <PySide.QtGui.QFrame object at 0x189aa28>
PySide.QtCore.QEvent.Type.Resize <PySide.QtGui.QFrame object at 0x189aa28>
PySide.QtCore.QEvent.Type.Paint <PySide.QtGui.QFrame object at 0x189aa28>
PySide.QtCore.QEvent.Type.Resize <PySide.QtGui.QFrame object at 0x189aa28>
PySide.QtCore.QEvent.Type.Paint <PySide.QtGui.QFrame object at 0x189aa28>
PySide.QtCore.QEvent.Type.Resize <PySide.QtGui.QFrame object at 0x189aa28>
PySide.QtCore.QEvent.Type.Paint <PySide.QtGui.QFrame object at 0x189aa28>
PySide.QtCore.QEvent.Type.Resize <PySide.QtGui.QFrame object at 0x189aa28>
PySide.QtCore.QEvent.Type.Paint <PySide.QtGui.QFrame object at 0x189aa28>
PySide.QtCore.QEvent.Type.Resize <PySide.QtGui.QFrame object at 0x189aa28>
PySide.QtCore.QEvent.Type.Paint <PySide.QtGui.QFrame object at 0x189aa28>
PySide.QtCore.QEvent.Type.Resize <PySide.QtGui.QFrame object at 0x189aa28>
PySide.QtCore.QEvent.Type.Paint <PySide.QtGui.QFrame object at 0x189aa28>
PySide.QtCore.QEvent.Type.Resize <PySide.QtGui.QFrame object at 0x189aa28>
PySide.QtCore.QEvent.Type.Paint <PySide.QtGui.QFrame object at 0x189aa70>
PySide.QtCore.QEvent.Type.Paint <PySide.QtGui.QFrame object at 0x189aa28>
PySide.QtCore.QEvent.Type.Resize <PySide.QtGui.QFrame object at 0x189aa28>
PySide.QtCore.QEvent.Type.Paint <PySide.QtGui.QFrame object at 0x189aa70>
PySide.QtCore.QEvent.Type.Paint <PySide.QtGui.QFrame object at 0x189aa28>
PySide.QtCore.QEvent.Type.Resize <PySide.QtGui.QFrame object at 0x189aa28>
PySide.QtCore.QEvent.Type.Paint <PySide.QtGui.QFrame object at 0x189aa70>
PySide.QtCore.QEvent.Type.Paint <PySide.QtGui.QFrame object at 0x189aa28>
PySide.QtCore.QEvent.Type.Resize <PySide.QtGui.QFrame object at 0x189aa28>
PySide.QtCore.QEvent.Type.Paint <PySide.QtGui.QFrame object at 0x189aa70>
PySide.QtCore.QEvent.Type.Paint <PySide.QtGui.QFrame object at 0x189aa28>
PySide.QtCore.QEvent.Type.Resize <PySide.QtGui.QFrame object at 0x189aa28>
PySide.QtCore.QEvent.Type.Paint <PySide.QtGui.QFrame object at 0x189aa70>
PySide.QtCore.QEvent.Type.Paint <PySide.QtGui.QFrame object at 0x189aa28>
PySide.QtCore.QEvent.Type.Resize <PySide.QtGui.QFrame object at 0x189aa28>
PySide.QtCore.QEvent.Type.Paint <PySide.QtGui.QFrame object at 0x189aa70>
PySide.QtCore.QEvent.Type.Paint <PySide.QtGui.QFrame object at 0x189aa28>
PySide.QtCore.QEvent.Type.Resize <PySide.QtGui.QFrame object at 0x189aa28>
PySide.QtCore.QEvent.Type.Paint <PySide.QtGui.QFrame object at 0x189aa70>
PySide.QtCore.QEvent.Type.Paint <PySide.QtGui.QFrame object at 0x189aa28>
PySide.QtCore.QEvent.Type.Resize <PySide.QtGui.QFrame object at 0x189aa28>
PySide.QtCore.QEvent.Type.Paint <PySide.QtGui.QFrame object at 0x189aa70>
PySide.QtCore.QEvent.Type.Paint <PySide.QtGui.QFrame object at 0x189aa28>
PySide.QtCore.QEvent.Type.Resize <PySide.QtGui.QFrame object at 0x189aa28>
PySide.QtCore.QEvent.Type.Paint <PySide.QtGui.QFrame object at 0x189aa28>
PySide.QtCore.QEvent.Type.Resize <PySide.QtGui.QFrame object at 0x189aa28>
PySide.QtCore.QEvent.Type.Paint <PySide.QtGui.QFrame object at 0x189aa28>
PySide.QtCore.QEvent.Type.Resize <PySide.QtGui.QFrame object at 0x189aa28>
PySide.QtCore.QEvent.Type.Paint <PySide.QtGui.QFrame object at 0x189aa28>
PySide.QtCore.QEvent.Type.Enter <PySide.QtGui.QFrame object at 0x189aa28>
PySide.QtCore.QEvent.Type.Leave <PySide.QtGui.QFrame object at 0x189aa28>
PySide.QtCore.QEvent.Type.Paint <PySide.QtGui.QFrame object at 0x189aa70>
PySide.QtCore.QEvent.Type.Paint <PySide.QtGui.QFrame object at 0x189aa70>
PySide.QtCore.QEvent.Type.Close <PySide.QtGui.QFrame object at 0x189aa28>
PySide.QtCore.QEvent.Type.Hide <PySide.QtGui.QFrame object at 0x189aa28>
PySide.QtCore.QEvent.Type.HideToParent <PySide.QtGui.QFrame object at 0x189aa28>
PySide.QtCore.QEvent.Type.WindowStateChange <PySide.QtGui.QFrame object at 0x189aa28>
PySide.QtCore.QEvent.Type.WindowStateChange <PySide.QtGui.QFrame object at 0x189aa70>
PySide.QtCore.QEvent.Type.WindowStateChange <PySide.QtGui.QFrame object at 0x189aa70>
PySide.QtCore.QEvent.Type.ChildRemoved <PySide.QtGui.QWidget object at 0x189ad88>
PySide.QtCore.QEvent.Type.Destroy <PySide.QtGui.QWidget object at 0x189ad40>
PySide.QtCore.QEvent.Type.Close <PySide.QtGui.QFrame object at 0x189aa70>
PySide.QtCore.QEvent.Type.Hide <PySide.QtGui.QFrame object at 0x189aa70>
PySide.QtCore.QEvent.Type.HideToParent <PySide.QtGui.QFrame object at 0x189aa70>
PySide.QtCore.QEvent.Type.WindowStateChange <PySide.QtGui.QFrame object at 0x189aa70>
PySide.QtCore.QEvent.Type.ChildRemoved <PySide.QtGui.QWidget object at 0x189ad88>
PySide.QtCore.QEvent.Type.Destroy <PySide.QtGui.QWidget object at 0x189ad40>
#!/usr/bin/python
import sys
from PySide.QtCore import *
from PySide.QtGui import *
class CloseEventFilter(QObject):
def eventFilter(self, target, event):
print event.type(), target
return False
if __name__ == '__main__':
#Qt boilerplate
app = QApplication(sys.argv)
main_window = QMainWindow()
main_layout = QHBoxLayout()
mdi_area = QMdiArea(main_window)
ev_filter = CloseEventFilter()
qframe1 = QFrame()
qframe2 = QFrame()
qframe1.installEventFilter(ev_filter)
qframe2.installEventFilter(ev_filter)
qhbox1 = QHBoxLayout()
qhbox2 = QHBoxLayout()
qframe1.setLayout(qhbox1)
sw1 = mdi_area.addSubWindow(qframe1, Qt.WA_DeleteOnClose)
qframe2.setLayout(qhbox2)
sw2 = mdi_area.addSubWindow(qframe2, Qt.WA_DeleteOnClose)
#Make the MDI area the central widget
main_window.setCentralWidget(QWidget())
main_window.centralWidget().setLayout(main_layout)
main_layout.addWidget(mdi_area)
main_window.show()
app.lastWindowClosed.connect(lambda: mdi_area.closeAllSubWindows())
app.exec_()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment