Python IDE IDLE 如何在光标位置的文本小部件顶部显示自动完成列表?
How does Python IDE IDLE shows autocompletion list on top of text widget at cursor position?
是否使用列表框?上下文菜单?在文本中插入小部件?还有别的吗?
此外,是否有一些关于 IDLE 功能的文档?哪些 python 文件做什么等?
autocompletewindow
是一个带有 Listbox
和 Scrollbar
的 tk Toplevel
。代码在 idlelib/AutoCompleteWindow.py 中(相关代码在 AutoComplete.py 中)。
Idle 文档提供了用户对 Idle 的看法。没有文档提供程序员对 idlelib 的看法。 (我希望在我开始使用 Idle 时有一个。现在我明白了大多数文件的作用,我应该写点东西。)
编辑:通过将 geometry string 传递给 .geometry
(== .wm_geometry
) 方法,Tk 和 Toplevel 小部件相对于桌面定位。请注意,字符串的 'wxh' 部分可以省略以仅传递 '+x+y',如在空闲代码中一样。
CallTipWindow.position_window
从 widget.winfo_rootx/y and Text.bbox 和偏移量计算 x 和 y。如果调用提示是通过键入 (
触发的,则该框位于该字符周围。 AutoCompleteWindow.winconfig_event
做了类似的事情,但也使用了 winfo_width/height
方法。
编辑 2:弹出式菜单可以用 Menu.post(x, y), (or Menu.tk_popup) 定位,其中 x, y 是相对于根的。 (Working example)
是否使用列表框?上下文菜单?在文本中插入小部件?还有别的吗?
此外,是否有一些关于 IDLE 功能的文档?哪些 python 文件做什么等?
autocompletewindow
是一个带有 Listbox
和 Scrollbar
的 tk Toplevel
。代码在 idlelib/AutoCompleteWindow.py 中(相关代码在 AutoComplete.py 中)。
Idle 文档提供了用户对 Idle 的看法。没有文档提供程序员对 idlelib 的看法。 (我希望在我开始使用 Idle 时有一个。现在我明白了大多数文件的作用,我应该写点东西。)
编辑:通过将 geometry string 传递给 .geometry
(== .wm_geometry
) 方法,Tk 和 Toplevel 小部件相对于桌面定位。请注意,字符串的 'wxh' 部分可以省略以仅传递 '+x+y',如在空闲代码中一样。
CallTipWindow.position_window
从 widget.winfo_rootx/y and Text.bbox 和偏移量计算 x 和 y。如果调用提示是通过键入 (
触发的,则该框位于该字符周围。 AutoCompleteWindow.winconfig_event
做了类似的事情,但也使用了 winfo_width/height
方法。
编辑 2:弹出式菜单可以用 Menu.post(x, y), (or Menu.tk_popup) 定位,其中 x, y 是相对于根的。 (Working example)