仅允许用户在tkinter中的文本小部件的末尾键入文本

时间:2016-05-14 06:46:58

标签: python tkinter text-widget

我想编写像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

先谢谢了。 The program look like this

1 个答案:

答案 0 :(得分:-1)

IDLE的Shell,在idlelib / PyShell.py中定义,或多或少地做你想要的。您可以自由阅读和复制,但代码非常复杂。我自己并没有完全阅读和理解,也不会试图解释它。

你可能会选择一个带有输入和输出的大型只读文本框和一个小的输入框,比如3行,设置在主框的正下方。文本小部件具有状态。来自this reference

  

&#34;通常,文本小部件响应键盘和鼠标事件;组   state = tk.NORMAL获取此行为。如果你设置state = tk.DISABLED,   文本小部件不会响应,您无法修改它   以编程方式提供内容。&#34;

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