我正在尝试创建一个聊天服务器,其中多个客户端可以连接到服务器。我想在一个模块中创建一个GUI(比如clientgui.py
),它调用另一个模块(比如client.py
)来连接服务器。
问题是我必须在点击某个按钮时调用client.py
。但是这样做时,主循环永远不会被执行。例如,
app = Tk()
...
sendbutton = Button(text,height...., command = Client().senddata())
#This will call function of a different module.
....
app.mainloop()
是否可以在“GUI循环”中调用另一个模块?
答案 0 :(得分:0)
您没有将功能分配给command
,而是senddata
的结果。试试这个:
sendbutton = Button(text, height, ..., command = Client().senddata)
那应该可以解决你的问题。请注意senddata
方法如何没有括号?那是因为你不想在那里调用它,你想谈论。由于函数和方法是对象,因此可以将其分配给参数(例如command
)。
您的代码正在执行的操作是将调用Client().senddata()
的结果分配给buttons命令。我假设这不会返回一个函数/方法/可调用对象(但它可以),而是指定None
,实际上使按钮在单击时根本不做任何事情。