如何弹出一个ncurses小部件而不清除背景?

2024-04-18 07:50:10 发布

您现在位置:Python中文网/ 问答频道 /正文

ncurses通常清除背景并显示小部件/窗口。在

我想让ncurses像当前会话的助手一样工作,它会弹出当前ssh会话上方的窗口

外观看起来像命令行.exe实施(见图)

enter image description here


Tags: 命令行部件助手exessh外观背景ncurses
2条回答

诅咒不是为这个设计的。您应该使用perl-tk或类似的GUI模块。它相当容易使用,而且它比诅咒更强大。在

简而言之:你不能这样做。在

Long:curses应用程序是全屏程序,可以清除屏幕,以便知道屏幕上的内容(因此curses库可以优化其输出:使用最少的工作量)。在

您可以编写一个使用自己规则的低级应用程序,例如使用terminfo/termcap接口。即使将其与ncurses库链接,也不会使其成为诅咒应用程序,而是terminfo(首选)或termcap(长期弃用)应用程序。请参阅ncurses常见问题解答Types of library users。在

要为所示示例创建terminfo应用程序,您的应用程序将(一下子,可能还有其他事情要做):

  • 使用^{}初始化终端(实际上是应用程序到终端数据库的连接)。在
  • 如果终端支持,则保存原始光标位置
  • 清除屏幕上的余数
  • 绘制对话框
  • 运行对话框
  • 使用保存的光标位置,将光标返回到原始位置
  • 清除屏幕上的余数。在

根据终端的能力,可能需要不同的方案(终端能力的不同组合)来清除屏幕、绘制对话框等

在绘制对话框时,您将无法使用任何高级curses调用。python文档并没有真正概述底层调用。要看到这一点,请阅读ncurses documentation。在

有些人可能会提出替代方案(我不会),但这些方案都有同样的局限性,这是由于终端功能。在

相关问题 更多 >