它使用列表框吗?上下文菜单?在文本中插入小部件?还有别的吗?
此外,是否有一些有关 IDLE 如何运行的文档?哪些 python 文件做什么,等等?
最佳答案
autocompletewindow
是一个带有 Listbox
和 Scrollbar
的 tk Toplevel
。代码位于idlelib/AutoCompleteWindow.py 中(相关代码位于AutoComplete.py 中)。
Idle 文档提供了 Idle 的用户 View 。没有文档为程序员提供了有关idlelib 的 View 。 (我希望当我开始使用 Idle 时就有一个。现在我了解了大多数文件的用途,我应该写一些东西。)
编辑:Tk 和顶级小部件通过传递 geometry string 相对于桌面进行定位。到 .geometry
(== .wm_geometry
) 方法。请注意,可以省略字符串的“wxh”部分,只传递“+x+y”,如 Idle 代码中所示。
CallTipWindow.position_window
从 widget.winfo_rootx/y 计算 x 和 y和 Text.bbox和偏移量。如果通过键入 (
触发调用提示,则该框位于该字符周围。AutoCompleteWindow.winconfig_event
执行类似的操作,但也使用 winfo_width/height
方法。
编辑2:弹出菜单可以使用Menu.post(x, y)(或Menu.tk_popup)定位,其中x,y相对于根。 (Working example)
关于tkinter - Python IDE IDLE 如何在光标位置的文本小部件顶部显示自动完成列表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31361792/