问题描述:
我的客户端有一个方法,_ 变种 _handler,由服务器通知 为了通知我的UI,我创建了一个发出信号的单例Notifier类。 然后在我的Qt小部件中,我将信号连接到小部件的插槽。
# inside the RemoteCache subclass on my client
# notified by the PB server when something happens
def __mutation_handler(self):
notifier = Notifier()
notifier.notify()
# inside notify.py
class Notifier(QObject):
def __new__(cls):
# Make it a singleton
def notify(self):
self.emit(SIGNAL('SomethingChanged'))
# inside the RemoteCache subclass on my client
def __mutation_handler(self):
# singleton notifier
notifier = Notifier()
notifier.notify()
# inside my widget.py
class MyWidget(QWidget):
def __init__(self):
... # code
self.notifier = Notifier()
self._create_signal_slot_connections()
... # more code
def _create_signal_slot_connections(self):
self.connect(self.notifier, SIGNAL('SomethingChanged'),self.shout)
def shout(self):
print 'Server's database changed!!!'
问题: 当我在服务器的数据库中更改某些内容时,会调用_ mutation _handler 正确地,然后信号发出正常。 但是,MyWidget无法捕获信号。
注意:我正在使用qt4reactor来调整Twisted的事件循环以适应qt的
我真的很感谢你的帮助!!!
答案 0 :(得分:0)
PyQt4中似乎有一个新的信号API。有关其使用的示例,请参阅http://www.riverbankcomputing.co.uk/static/Docs/PyQt4/html/new_style_signals_slots.html。也许这会更好。