0

我将如何设置一个TkinterText 小部件来执行类似于 IDLE 条目的操作?例如:

>>> Entry goes here!

但是,我知道如何在每行的开头插入它们,但是我将如何使它不可删除,这样你就不能删除>>>?我在谷歌上搜索过这个,但无济于事。

4

1 回答 1

1

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

  1. 插入提示时,请记住提示结尾的索引。
  2. 为您关心的事件添加绑定到小部件(例如:<BackSpace><Delete><<Cut>>
  3. 在此绑定中,您可以查看插入光标和选择的索引,如果它在保存的索引之前,则忽略该事件(即:do a return "break")。

这应该或多或少可以正常工作,尽管它允许您在提示之前插入字符。重写所有更改文本小部件的绑定是一项相当艰巨的任务,但仅跟踪删除并不太难。

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

于 2012-06-24T17:28:46.630 回答