我想写一个像Putty这样的程序,使用netmiko库和Text tkinter小部件作为编辑器连接到Cisco路由器。
我的问题是如何只允许用户在Text的末尾键入命令,而不允许在Text小部件的其他地方键入命令。
例如,我的程序连接,发送显示ip接口摘要,接收输出并在编辑器上显示
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
程序看起来像这个
相反,您可以使用一个带有输入和输出的大型只读文本框,以及一个设置在主框正下方的小型输入框,例如3行。文本小部件有一个状态。根据该参考
"通常,文本窗口小部件会对键盘和鼠标事件做出响应;设置state=tk.NORMAL以获取此行为。如果您将state设置为tk.DISABLED,文本小部件不会响应,您也无法修改它以编程方式显示内容。"
在条目框中,绑定到移动条目的代码,并提交条目以执行操作。请注意,它必须将状态设置回NORMAL,插入条目,然后再次设置DISABLED。