我通过PyQt QTextEdit开发了一个shell(模仿ubuntu终端 - >只能在当前提示后编辑文本)。
当我选择一些文本时,光标移动,因为我正在选择此文本(因此它从当前命令行中消失)并且我希望光标保持原位(仅当我选择文本时在我选择文本的同时,我希望它在textEdit.moveCursor(...)
)以编程方式移动时移动。
有人知道我怎么能这样做?
我现在的解决方案是在任何更改时保存位置(除非通过单击更改),当我复制一些文本时粘贴它,它将自动粘贴到光标的最后位置在点击之前。这完全有效,但它对用户来说是“丑陋的”,因为正如我所说,当他选择文本时,光标会消失当前行并且是用户选择文本的位置。不像在ubuntu终端。
提前致谢!对不起我的英语。
Adri
答案 0 :(得分:0)
我没有看到使用文本编辑器API实现此功能的简单解决方案。终端基本上就是黑客。它将只读元素(当前提示之上的任何内容)与文本编辑器混合在一起。
我的方法是创建两个文本编辑器,只读一个并显示那里的所有操作的结果。如果隐藏两个编辑器的边框,那么它将看起来像一个。您可能必须将一堆事件(例如使用键盘滚动)转发到只读显示器。