我有 GUI,我想在两个类之间建立一些通信
.
.
.
mainWidget = QtGui.QWidget()
mainWidget.setLayout( mainLayout )
self.setCentralWidget( mainWidget )
self.show()
""" Creating class """
self.server = MCCommunication.MCCommunication()
self.connect( self.server, QtCore.SIGNAL( "textUpdated" ), self.insertText );
sys.exit( self.app.exec_() )
MCCommunication 类如下:
类 MCCommunication(QtCore.QObject): ''' 类文档 '''
def __init__( self ):
'''
Constructor
'''
HOST, PORT = socket.gethostbyname( socket.gethostname() ), 31000
self.server = SocketServer.ThreadingTCPServer( ( HOST, PORT ), MCRequestHandler )
ip, port = self.server.server_address
# Start a thread with the server
# Future task: Make the server a QT-Thread...
self.server_thread = threading.Thread( target = self.server.serve_forever )
self.server_thread.start()
self.emit( QtCore.SIGNAL( "textUpdated" ), ( "TCPServer listening on" ) )
但我收到以下错误:
self.emit( QtCore.SIGNAL( "textUpdated" ), ( "TCPServer listening on" ) )
RuntimeError: underlying C/C++ object has been deleted
请您参考如下方法:
您需要在 MCCommunication 类中初始化底层 QObject。将此行添加到 __init__ 方法的开头:
super(MCCommunication,self).__init__()
