New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Out of date code example for tkinter's createfilehandler #66351
Comments
The only documentation on “createfilehandle” and friends that I can find looks like it needs updating: I have been using the equivalent of this instead, for both Python 2 and 3: import tkinter
widget = tkinter.Tk()
widget.tk.createfilehandler(file, tkinter.READABLE | tkinter.WRITABLE, callback)
...
widget.tk.deletefilehandler(file) However I have no idea if this is a supported, proper way, if one even still exists. The old way was removed by bpo-3638. BTW, there is a link to release/3.4.1 documentation but that returned a 404 error for me, so I linked to the 3.4.0 doc instead. |
The latest x.y docs are available at docs.python.org/x.y, such as I was not aware of this undocumented method of the undocumented tkapp class. It is not available on Windows, and the FAQ should say so. From Modules/_tkinter.c: /* Tcl_CreateFileHandler() changed several times; these macros deal with the messiness. In Tcl 8.0 and later, it is not available on Windows (and on Unix, only because Jack added it back); when available on Windows, it only applies to sockets. */ Current _tkinter only supports 8.4+. The messiness still appears in the asyncio design. 'createfile' does not appear on the pydoc page for tkinter; directly using createfilehandle seems to be the only access. |
Just about the broken docs link: I was trying to find a permanent version of the docs to link to. The usual docs page links to “Old versions” <https://www.python.org/doc/versions/\>, but top link there, 3.4.1, does not seem to be available. |
Here is a patch which moves the documentation from the FAQ into a new section at the bottom of the main “tkinter” reference manual page, and updates it. I also mentioned lack of Windows support. Let me know what you think! |
Assuming that the details are correct, which I cannot check on Windows :-(, this looks good to me. If the tkinter doc is expanded and reorganized, that section might move but I cannot see a better place for it now. Martin, have you used that code (with Tkinter/tkinter) on both 2.7 and 3.x? Serhiy, if you want me to apply this, after you check it, I will. |
I'm not sure that this is right place to document these functions (they are methods of undocumented class), but the patch looks correct to me. If you will commit the patch, Terry, note that tkinter should be replaced with Tkinter in 2.7. |
New changeset e8dd65c7fb6b by Terry Jan Reedy in branch '2.7': New changeset 1efcb7b6ec8a by Terry Jan Reedy in branch '3.4': |
New changeset 8bd9da5635fe by Terry Jan Reedy in branch '3.4': New changeset 850cbd54cc73 by Terry Jan Reedy in branch 'default': |
Martin, thanks for the nice patch. |
For the record, I have used this code in 2.7 in the past (though I mainly use Python 3). The Python 2 version of the changes look fine to me. |
Note: these values reflect the state of the issue at the time it was migrated and might not reflect the current state.
Show more details
GitHub fields:
bugs.python.org fields:
The text was updated successfully, but these errors were encountered: