Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/user-interface/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 从GUI的mainloop()调用另一个模块_Python_User Interface - Fatal编程技术网

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

Python 从GUI的mainloop()调用另一个模块,python,user-interface,Python,User Interface,我正在尝试创建一个聊天服务器,多个客户端可以连接到一个服务器。我想在一个模块(比如clientgui.py)中创建一个GUI,它调用另一个模块(比如client.py)来连接到服务器 问题是我必须在单击某个按钮时调用client.py。但是这样做时,主循环永远不会执行。比如说, app = Tk() ... sendbutton = Button(text,height...., command = Client().senddata()) #This will call function

我正在尝试创建一个聊天服务器,多个客户端可以连接到一个服务器。我想在一个模块(比如
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循环”中的另一个模块?

您没有将函数分配给
命令
,而是分配给
发送数据
的结果。请尝试以下方法:

sendbutton = Button(text, height, ..., command = Client().senddata)
那应该能解决你的问题。注意
senddata
方法上没有括号?那是因为你不想在那里打电话,你想谈论它。由于函数和方法是对象,因此可以将其指定给参数(例如,
命令


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

@rocklearnpython,不客气。很高兴能帮上忙。