python空闲时是否有水平滚动条?

时间:2012-04-24 15:27:05

标签: python python-idle

我正在使用IDLE在Windows 7上学习Python 2.7。

垂直滚动条工作正常,但我找不到
一种激活水平滚动条的方法。

Python的IDLE中是否有水平滚动条?

由于

8 个答案:

答案 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没有水平滚动条有两个原因:

  1. 其文本编辑器功能很少。
  2. 您不应该编写长行代码。请参阅PEP 8样式指南(适用于Python代码)的Maximum Line Length部分

答案 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'                         ###
...