从GUI的mainloop()调用另一个模块

2024-05-19 08:12:09 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试创建一个聊天服务器,多个客户端可以连接到一个服务器。我想在一个模块(比如clientgui.py)中创建一个GUI,它调用另一个模块(比如client.py)来连接到服务器。在

问题是我必须在单击某个按钮时调用client.py。但是这样做时,主循环永远不会执行。例如

app = Tk()

...

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

....

app.mainloop()

是否可以在“GUI循环”中调用另一个模块?在


Tags: 模块textpy服务器clientapp客户端gui
1条回答
网友
1楼 · 发布于 2024-05-19 08:12:09

不是将函数赋给command,而是将senddata的结果赋值给command。试试这个:

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

这应该能解决你的问题。注意senddata方法是如何没有括号的?那是因为你不想直接说出来,你想谈论它。因为函数和方法都是对象,所以可以将其分配给一个参数(例如command)。在

您的代码所做的是将调用Client().senddata()的结果分配给buttons命令。我假设这不会返回一个函数/方法/可调用对象(但它可以),而是指定None,这实际上使按钮在单击时根本不做任何事情。在

相关问题 更多 >

    热门问题