Button Press イベントと Relase イベントで 2 つの関数を呼び出そうとしています。これらのイベントなしで (コード内で直接) 同じ関数を呼び出すと、目的の出力が得られません。
「接続ボタン」をクリックすると:
- On Button Press Event -> Call Function connect (これにより、クライアントとサーバー間の接続が作成されます)
- On Button Release Event -> Call Function Send Details (クライアントからサーバーにデータを送信します)
print コマンドを使用してプログラムの流れを確認したところ、問題が発生していることがわかりましたconnection.transport.write(data)
。
def on_connectCLB_pressed(self):
Connect()
def on_connectCLB_released(self):
Send_Details()
def Send_Details():
print "Send_Details"
global connection,chat
contents="contents"
if (USER!=''):
stat="Available"
data="user_details>>:"+USER +">>:"+stat+">>:"+contents
connection.transport.write(data)
else:
GUI.setStatusTip(QtGui.QApplication.translate("MainWindows", 'Enter your username.', None, QtGui.QApplication.UnicodeUTF8))
def Connect():
print "Connect"
global connection
connection=reactor.connectTCP(HOST,int(PORT) , EchoClientFactory()) ##listenTCP and connectTCP,to set defaults for all connections coming from that accept() or connect()