2

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

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

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

谢谢

4

8 回答 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 编辑器窗口中添加水平滚动条,以便在您获得那些长长的代码行时提供帮助。它们的更改相当小(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

于 2012-05-02T18:30:26.497 回答
2

不,IDLE 没有水平滚动条有两个原因:

  1. 它的文本编辑器几乎没有什么功能。
  2. 您不应该编写长行代码。请参阅Python 代码的 PEP 8 样式指南的最大行长部分
于 2012-04-24T15:35:19.580 回答
2

我使用的是 IDLE 2.7.3,Windows 7,我可以通过按住鼠标中心按钮/滚轮水平滚动,然后像这样在光标周围“拖动”。

于 2015-04-17T05:58:14.227 回答
2

我可能还不是 Python 专家/大师,但这个问题比任何事情都更重要的是用户体验/可用性问题。有些人可能会说“是的,PEP 8 风格指南……等等等等”,但如果我的 IDLE 窗口有一定的大小(比如说小宽度),我作为用户没有理由不能滚动。这只是糟糕的设计导致的糟糕的用户体验。

于 2015-07-11T03:37:02.543 回答
1

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

于 2012-04-24T15:33:26.737 回答
1

http://bugs.python.org/issue1207613

IdleX项目提供了一个扩展,用于在 IDLE 中显示水平滚动条。

于 2012-10-25T03:22:32.257 回答
0

不,因为 Python PEP强调,所以行长最多应该是 79 个符号。大多数人当然违反了这一点。

于 2012-04-24T15:37:27.007 回答
0

用于 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'                         ###
...
于 2019-02-18T20:58:55.513 回答