【发布时间】:2015-09-10 14:23:19
【问题描述】:
我正在尝试在 PyQt 应用程序窗口中嵌入 xterm 以跟踪日志文件。但是,我想在嵌入式终端中阻止用户的键盘输入,这样他们就不会按下 CTRL-C 或 CTRL-D 并终止进程。
我可以很好地嵌入终端。是否有可用于阻止用户输入的 xterm 或 PyQt 设置?我希望这是一个只读终端,它只显示日志文件的内容。
我在手册页中搜索了 xterm,但没有找到任何东西。
【问题讨论】:
我正在尝试在 PyQt 应用程序窗口中嵌入 xterm 以跟踪日志文件。但是,我想在嵌入式终端中阻止用户的键盘输入,这样他们就不会按下 CTRL-C 或 CTRL-D 并终止进程。
我可以很好地嵌入终端。是否有可用于阻止用户输入的 xterm 或 PyQt 设置?我希望这是一个只读终端,它只显示日志文件的内容。
我在手册页中搜索了 xterm,但没有找到任何东西。
【问题讨论】:
解决这个问题的方法是构建一个透明(实际上是“无色”)窗口,覆盖嵌入的 xterm 窗口。
Basic X Window keyboard and mouse input blocking 中描述了一个示例,它本质上是一个用 Python 编写的屏幕保护程序。对于窗口属性的较低级别(X 文档),How to prevent an X Window from receiving user input? 中的链接可能对您有用。
要解决的主要问题是(在您的程序中)如何确保覆盖的窗口位于顶部,当然还有如何保持透明(因为这与示例不同)。后者更复杂:
【讨论】: