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

问题描述 投票:2回答:8

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

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

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

谢谢

python python-idle
8个回答
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   ###

希望这是有帮助的。

乔纳森波利

jwpolley at collins.rockwell.com


3
投票

ID。IDLE没有水平滚动条有两个原因:

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

2
投票

我可能不是Python专家/专家,但这个问题比任何事情都更具用户体验/可用性问题。有些人可能会说“是的,PEP 8风格指南......等等等等”,但如果我将IDLE窗口设置为一定大小(比方说小宽度),我就没有理由认为用户不应该滚动。由于设计不佳,这只是糟糕的用户体验。


1
投票

不,文本根据插入点或选择的位置水平滚动。


1
投票

http://bugs.python.org/issue1207613

IdleX项目提供了在IDLE中显示水平滚动条的扩展。


1
投票

我正在使用IDLE 2.7.3,Windows 7,我可以通过按住鼠标中键/滚轮来水平滚动,并像这样“拖动”光标。


0
投票

不,因为Python PEPs emphasize,该行长度最多应为79个符号。当然,大多数人都违反了这一点。


0
投票

适用于IDLE的水平滚动条,适用于Python 3.6。

感谢Amber和他/她的回答,我找到了让它适用于Python 3.6的方法。

你必须在同一个类EditorWindow中进行一些更改,但现在它位于一个不同的模块:%editor @py \ 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'                         ###
...
© www.soinside.com 2019 - 2024. All rights reserved.