【问题标题】:How to detect window resize in Linux如何在 Linux 中检测窗口调整大小
【发布时间】:2021-04-25 23:10:27
【问题描述】:

我正在为 C++ 开发一个 TUI(文本用户界面)库,并且我有一个用于检测控制台窗口大小的函数。我是否可以检测到窗口调整大小?如果它可以与任何终端模拟器一起使用,我会更喜欢,但如果重要的话,我使用的是 Ubuntu Budgie 20.10,而我的终端模拟器是 Tilix。

【问题讨论】:

    标签: c++ linux terminal


    【解决方案1】:

    您可以set up a signal handler for the SIGWINCH signal,只要终端大小发生变化,您就会收到此信号。请注意,与所有信号处理程序一样,信号处理程序中的任何代码都必须是信号安全的。

    如果你使用curses库,你会得到一个KEY_RESIZE键,然后检查COLSLINES

    【讨论】:

    • 谢谢,我会调查的。我还想指出,我没有使用 curses/ncurses,我使用的是 ASCII 转义码来控制它。
    【解决方案2】:

    我通过不断检查屏幕尺寸找到了一种方法。如果屏幕尺寸发生变化,则会记录下来并重新绘制屏幕。

    【讨论】:

      猜你喜欢
      • 2021-03-26
      • 2013-02-10
      • 2020-01-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-02-21
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多