我想编写像Putty这样的程序,使用netmiko库和Text tkinter widget作为编辑器连接到Cisco路由器。
我的问题是如何只允许用户在文本末尾键入命令,而不是在文本小部件的其他位置键入命令。
例如,我的程序连接,发送 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
答案 0 :(得分:-1)
IDLE的Shell,在idlelib / PyShell.py中定义,或多或少地做你想要的。您可以自由阅读和复制,但代码非常复杂。我自己并没有完全阅读和理解,也不会试图解释它。
你可能会选择一个带有输入和输出的大型只读文本框和一个小的输入框,比如3行,设置在主框的正下方。文本小部件具有状态。来自this reference
&#34;通常,文本小部件响应键盘和鼠标事件;组 state = tk.NORMAL获取此行为。如果你设置state = tk.DISABLED, 文本小部件不会响应,您无法修改它 以编程方式提供内容。&#34;
在输入框中,绑定到移动条目的代码,并提交它以便操作。请注意,它必须将状态设置回NORMAL,插入条目,然后再次设置DISABLED。