我正在使用 IDLE 在 Windows 7 上学习 Python 2.7。
垂直滚动条工作正常,但我找不到
激活水平滚动条的方法。
Python 的 IDLE 中是否有水平滚动条?
谢谢
我正在使用 IDLE 在 Windows 7 上学习 Python 2.7。
垂直滚动条工作正常,但我找不到
激活水平滚动条的方法。
Python 的 IDLE 中是否有水平滚动条?
谢谢
IDLE 的水平滚动条
来自http://code.activestate.com/lists/python-list/26878/ (不是我的代码,在这个网站上找到)它的日期是 2000 年 3 月 8 日星期三
适用于 Python 2.6,但我无法在 2.7 中工作。我收到一条错误消息,说文件在某个地方打开。对我来说,他说的文件位于:C:\Python27\ArcGIS10.1\Lib\idlelib 如果你没有python自带的ArcMap程序并为你安装,那就不一样了。
我终于开始在 IDLE 编辑器窗口中添加水平滚动条,以便在您获得那些长长的代码行时提供帮助。它们的更改相当小(4 行新代码)并且是在 EditorWindow.py 模块中进行的。要在 IDLE 中进行更改,请打开 EditorWindow.py 并搜索 EditorWindow 类
__init__
方法中的“vbar”。###
添加已附加到它们的那些行,瞧,您就拥有了。不幸的是,滚动条出现在 IDLE 0.5 中的行和列信息下方(叹气)。self.vbar = vbar = Scrollbar(top, name='vbar') self.hbar = hbar = Scrollbar(top, orient=HORIZONTAL, name='hbar') ### ... vbar['command'] = text.yview vbar.pack(side=RIGHT, fill=Y) hbar['command'] = text.xview ### hbar.pack(side=BOTTOM, fill=X) ### text['yscrollcommand'] = vbar.set text['xscrollcommand'] = hbar.set ###
希望这会有所帮助。
乔纳森·波利
jwpolley 在 collins.rockwell.com
不,IDLE 没有水平滚动条有两个原因:
我使用的是 IDLE 2.7.3,Windows 7,我可以通过按住鼠标中心按钮/滚轮水平滚动,然后像这样在光标周围“拖动”。
我可能还不是 Python 专家/大师,但这个问题比任何事情都更重要的是用户体验/可用性问题。有些人可能会说“是的,PEP 8 风格指南……等等等等”,但如果我的 IDLE 窗口有一定的大小(比如说小宽度),我作为用户没有理由不能滚动。这只是糟糕的设计导致的糟糕的用户体验。
不,文本会根据插入点或选择的位置水平滚动。
见http://bugs.python.org/issue1207613
IdleX项目提供了一个扩展,用于在 IDLE 中显示水平滚动条。
不,因为 Python PEP强调,所以行长最多应该是 79 个符号。大多数人当然违反了这一点。
用于 Python 3.6 的 IDLE 水平滚动条。
感谢 Amber 和他/她的回答,我找到了让它适用于 Python 3.6 的方法。
您必须在同一个类中进行一些更改EditorWindow
,但现在它位于不同的模块中:%python%\Lib\idlelib\ (win) 中的“editor.py”。
首先,您必须以相同的方法进行更改__init__
。handle_xview
然后为同一个类创建一个新方法。
这是代码,您必须添加以 结尾的行###
:
self.vbar = vbar = Scrollbar(text_frame, name='vbar')
self.hbar = hbar = Scrollbar(text_frame, orient=HORIZONTAL, name='hbar') ###
...
vbar['command'] = self.handle_yview
vbar.pack(side=RIGHT, fill=Y)
text['yscrollcommand'] = vbar.set
hbar['command'] = self.handle_xview ###
hbar.pack(side=BOTTOM, fill=X) ###
text['xscrollcommand'] = hbar.set ###
和方法:
...
def handle_yview(self, event, *args):
...
...
def handle_xview(self, event, *args): ###
"Handle Horizontal scrollbar." ###
self.text.xview(event, *args) ###
return 'break' ###
...