Tk允许您注册和注销回调函数,当可以在文件描述符上进行I/O操作时,该函数将从Tk主循环调用。每个文件描述符只能注册一个处理程序。示例代码:
import tkinter
widget = tkinter.Tk()
mask = tkinter.READABLE | tkinter.WRITABLE
widget.tk.createfilehandler(file, mask, callback)
...
widget.tk.deletefilehandler(file)
此功能在Windows上不可用。
由于您不知道有多少字节可供读取,您可能不想使用BufferedIOBase或TextIOBase read() 或readline() 方法,因为这些将坚持读取预定义的字节数。对于套接字,recv() 或recvfrom() 方法可以正常工作; 对于其他文件,请使用raw read或os.read(file.fileno(),maxbytecount)。Widget.tk.``createfilehandler
(file, mask, func)
注册文件处理程序回调函数func。file参数可以是具有fileno() 方法的对象 (例如file或socket对象),也可以是整数文件描述符。掩码参数是以下三个常数中任何一个的ted组合。回调调用如下:
callback(file, mask)
Widget.tk.``deletefilehandler
(file)¶
取消注册文件处理程序。tkinter.``READABLE``tkinter.``WRITABLE``tkinter.``EXCEPTION
掩码参数中使用的常量。