我正在使用IDLE在Windows 7上学习Python 2.7。
垂直滚动条工作正常,但我找不到
一种激活水平滚动条的方法。
Python的IDLE中是否有水平滚动条?
由于
答案 0 :(得分:5)
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中添加水平滚动条了 当你获得那些LONG代码行时,编辑器窗口可以提供帮助。他们 改变是相当mionor(4个新的代码行),并在 EditorWindow.py模块。要在IDLE中进行更改,请打开 EditorWindow.py并搜索“vbar” EditorWindow类,
__init__
方法。添加那些###
的行 附加到他们和VOILA你有它。不幸的是,滚动条 出现在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 ###
希望这有用。
Jonathan Polley
jwpolley at collins.rockwell.com
答案 1 :(得分:3)
没有。 IDLE没有水平滚动条有两个原因:
答案 2 :(得分:1)
不,文本根据插入点或选择的位置水平滚动。
答案 3 :(得分:1)
请参阅http://bugs.python.org/issue1207613
IdleX项目提供了一个在IDLE中显示水平滚动条的扩展名。
答案 4 :(得分:1)
我正在使用IDLE 2.7.3,Windows 7,我可以通过按住鼠标中键/滚轮来水平滚动,并像那样“拖动”光标。
答案 5 :(得分:1)
我可能不是Python专家/专家,但这个问题比用户体验/可用性问题更重要。有些人可能会说“是的,PEP 8风格指南......等等等等”但是如果我有IDLE窗口一定的尺寸(比方说小宽度),我没有理由不能用户滚动。由于设计不佳,这只是糟糕的用户体验。
答案 6 :(得分:0)
不,因为Python PEP emphasize,行长 最多应为79个符号。当然,大多数人都违反了这一点。
答案 7 :(得分:0)
用于IDLE的水平滚动条,用于Python 3.6。
多亏了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' ###
...