不删除前导字符python tkinter

时间:2012-06-24 16:27:52

标签: python tkinter python-2.7

我如何设置Tkinter文本小部件来执行与IDLE条目类似的操作?例如:

>>> Entry goes here!

但是,我知道如何在每行的开头插入它们,但是如何使其不可删除,以便您无法删除>>>?我在google上搜索过这个,但无济于事。

1 个答案:

答案 0 :(得分:0)

如果解决方案只需要“足够好”,我将使用的技术是:

  1. 插入提示时,请记住提示结束的索引。
  2. 为您关注的事件添加小部件的绑定(例如:<BackSpace><Delete>以及<<Cut>>
  3. 在此绑定中,您可以查看插入光标和选择的索引,如果它在保存的索引之前,则忽略该事件(即:执行return "break")。
  4. 这应该或多或少可以正常工作,但它允许您在提示之前插入字符。重写改变文本小部件的所有绑定是一项相当艰巨的任务,但只是跟踪删除并不是太难。

    要完美地解决问题,需要编写一些tcl代码来拦截实际小部件的低级插入和删除命令。虽然它需要对底层tcl代码有一个正确的理解,但这是可能的。有关示例,请参阅此答案:https://stackoverflow.com/a/11180132/7432