2

我想编写一个像 Putty 这样的程序,使用 netmiko 库和 Text tkinter 小部件作为编辑器连接到 Cisco 路由器。

我的问题是如何只允许用户在 Text 末尾键入命令,而不是在 Text 小部件的其他地方键入命令。

比如我的程序 connect ,发送show ip interface brief,接收输出并显示在编辑器上

Router# show ip interface brief
Interface     IP-Address     OK?  Method  Status                  Protocol
Ethernet0     10.108.00.5    YES  NVRAM   up                      up      
Ethernet1     unassigned     YES  unset   administratively down   down    
Loopback0     10.108.200.5   YES  NVRAM   up                      up
Router# <-- user can only type command from here

程序看起来像这样

4

1 回答 1

-1

IDLE 的 Shell,在 idlelib/PyShell.py 中定义,或多或少可以满足您的需求。您可以自由阅读和复制,但代码相当复杂。我自己还没有完全阅读和理解它,也不会尝试解释它。

您可以改为使用带有输入和输出的大型只读文本框和一个小的输入框,例如 3 行,设置在主框的正下方。文本小部件具有状态。从这个参考

“通常,文本小部件响应键盘和鼠标事件;设置 state=tk.NORMAL 以获得此行为。如果设置 state=tk.DISABLED,文本小部件将不会响应,并且您将无法修改其内容以编程方式。”

在条目框中,绑定到移动条目的代码,以及提交它以执行操作。请注意,它必须将状态设置回 NORMAL,插入条目,然后再次设置 DISABLED。

于 2016-05-14T18:25:36.893 回答