我用python+urwid编写了一个类似ircII的屏幕,在这里我有一个文本流,整个终端屏幕,加上底部的可编辑文本作为提示,让用户插入命令并按enter键。在
屏幕的主体是urwid.SimpleFocusListWalker
,对于每一行新文本(例如命令响应),将创建一个新的urwid.Text
。在
这段代码展示了我如何创建布局。在
self._widgetPromptText = urwid.Edit(self._textPrompt, initial_text)
self._widgetLinesList = urwid.SimpleFocusListWalker([])
self._widgetBufferListBox = urwid.ListBox(self._widgetLinesList)
self._w = urwid.Frame(header=self._widgetHeader,
body=self._widgetBufferListBox,
footer=self._widgetPromptText,
focus_part="footer")
好的,现在的问题是,当我的终端窗口失去焦点时,我再次单击它,通过单击xterm窗口的标题栏,或者直接单击作为用户输入命令的底部urwid.Edit
,一切都正常。在
但是,如果我单击xterm窗口的屏幕,底部的urwid.Edit
将失去焦点,因此也会丢失光标。我必须再次单击urwid.Edit
使光标再次出现,并能够写入。
似乎当我用鼠标点击屏幕时,urwid会从底部urwid.Edit
离开焦点,并将其交给urwid.SimpleFocusListWalker
或{urwid.Edit
。在
我绝对不想这样!
我怎样才能告诉urwid不要把焦点放在urwid.SimpleFocusListWalker
或{urwid.Edit
的时候把焦点放在{
更重要的是,我希望能够告诉urwid不要离开我用来写命令的urwid.Edit
离开焦点。在
有什么帮助吗?!在
嗯,看来我已经可以通过在类中添加以下代码来解决错误:
现在,当我点击终端的表面,光标不再消失。 这正是我要找的。在
相关问题 更多 >
编程相关推荐