2012-01-31 3 views
1

複数のクライアントがサーバに接続できるチャットサーバを作成しようとしています。私は別のモジュール(たとえばclient.py)を呼び出してサーバーに接続する1つのモジュール(たとえばclientgui.py)でGUIを作成したいと考えています。GUIのmainloop()から別のモジュールを呼び出す

問題は、特定のボタンをクリックしたときにclient.pyに電話する必要があります。しかし、その間、メインループは決して実行されません。たとえば、

app = Tk() 

... 

sendbutton = Button(text,height...., command = Client().senddata()) 
#This will call function of a different module. 

.... 

app.mainloop() 

"GUIループ"内で別のモジュールを呼び出すことはできますか?

答えて

0

commandに機能を割り当てていませんが、結果はsenddataです。代わりにこれを試してみてください:

sendbutton = Button(text, height, ..., command = Client().senddata) 

問題を解決するはずです。 senddataメソッドにかっこがないことに注目してください。それはあなたがそれをすぐに呼びたくないからです。について話したいと思っています。関数とメソッドはオブジェクトなので、パラメータに代入しても問題ありません(例:command)。

コードでは、Client().senddata()を呼び出した結果をbuttonsコマンドに割り当てました。私はこれは関数/メソッド/呼び出し可能なオブジェクトを返すことはできません(しかし、可能性があります)、代わりにNoneを割り当て、ボタンをクリックすると何もしないようにします。

+0

ダレンのおかげで、教えてくれた良いレッスンでした。 – rocklearnpython

+0

@rocklearnpython、よろしくお願いします。助けになってうれしいです。 –

関連する問題