[PyKDE] QApplication.notify gets QObject receiver arg
alh at jenkon.com
alh at jenkon.com
Thu Apr 25 22:22:01 BST 2002
Howdy,
I have some interesting behavior that
Environment is Win2000, Python 2.1.3, Qt 3.0.3, PyQt 3.1.
Console:
C:\>python test.py
focus-in <qt.QPushButton instance at 0080331C>
open <__main__.TestWin instance at 0080AF34>
focus-in <qt.QLineEdit instance at 007FD7AC>
focus-in <qt.QLineEdit instance at 007FD134>
focus-in <qt.QLineEdit instance at 007FD7AC>
focus-in <qt.QPushButton instance at 0080331C>
close <__main__.TestWin instance at 0080AF34>
open <__main__.TestWin instance at 0080AF34>
focus-in <qt.QObject instance at 007F5704>
focus-in <qt.QObject instance at 007F568C>
focus-in <qt.QObject instance at 007F5704>
focus-in <qt.QPushButton instance at 0080331C>
close <__main__.TestWin instance at 0080AF34>
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
import sys
import qt
class App(qt.QApplication):
def notify(self, receiver, event):
if event.type() == qt.QEvent.FocusIn:
print 'focus-in', receiver
return qt.QApplication.notify(self, receiver, event)
class MainWin(qt.QMainWindow):
def __init__(self):
qt.QMainWindow.__init__(self)
self.wnd = None
btn = qt.QPushButton('Click', self)
btn.resize(btn.sizeHint())
self.connect(btn, qt.SIGNAL('clicked()'), self.toggleWindow)
def toggleWindow(self):
if self.wnd:
print 'close', self.wnd
self.wnd.close(1)
self.wnd = None
else:
self.wnd = TestWin()
print 'open', self.wnd
self.wnd.show()
class TestWin(qt.QMainWindow):
def __init__(self):
qt.QMainWindow.__init__(self)
main = qt.QWidget(self)
self.setCentralWidget(main)
layout = qt.QVBoxLayout(main)
layout.addWidget(qt.QLineEdit(main))
layout.addWidget(qt.QLineEdit(main))
if __name__ == '__main__':
app = App(sys.argv)
win = MainWin()
win.show()
app.connect(app, qt.SIGNAL('lastWindowClosed()'), app, qt.SLOT('quit()'))
app.exec_loop()
<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
More information about the PyQt
mailing list