[PyKDE] Bizarre backtrace?

Bill Soudan bill at soudan.net
Tue Jul 2 00:01:01 BST 2002


On Mon, 1 Jul 2002, Phil Thompson wrote:

> sipThis is created by the ctor of a PyQt class. Normally this error 
> occurs when you have sub-classed a PyQt class but forgot to call the 
> PyQt class __init__() from your sub-class's __init__().

Interesting.  I don't think that's the problem here though, because the
error occurs inside an object that has nothing to do with PyQt at all.  I
verified all of my GUI elements are in fact invoking the superclass's
__init__ anyway.

Here's some relevant code snippets:

class MainWindow(MainWindowBase):
  def __init__(self, parent = None, name = None, f = 0):
    MainWindowBase.__init__(self, parent, name, f)

    self.sockets = {}

    ...

    self.addMonitor('host', 21992)

  ...

  def addMonitor(self, host, port):
    i = MonitorItem(host, port, self.listView)
    fd = i.subscriber.fileno()
    sn = QSocketNotifier(fd, QSocketNotifier.Read, self)
    self.connect(sn, SIGNAL('activated(int)'), self.handleSocketNotification)
    self.sockets[fd] = i

  ...

  def handleSocketNotification(self, fd):
    print 'socket_notifier fired, handling request'
    s = self.sockets[fd].subscriber
    s.handle_request()

The 'MonitorItem' is a subclass of QListViewItem, which contains an
instance of a Subscriber class that is derived from the XMLRPC code.  It
knows nothing about PyQt.  The exception is occuring when QSocketNotifier
emits an activated signal.  That's connected to handleSocketNotification,
which in turn invokes the handle_request method on an instance of the
Subscriber class.  Past this point, the code has nothing to do with PyQt, 
but I'm receiving that strange exception from deep inside the standard 
library's SocketServer code.

Any other thoughts?

Thanks,
Bill




More information about the PyQt mailing list