【问题标题】:Linux C/C++ keyboard ctrl+[somekey] and ctrl+alt+[somekey} [closed]Linux C/C++ 键盘 ctrl+[somekey] 和 ctrl+alt+[somekey} [关闭]
【发布时间】:2014-01-13 03:23:46
【问题描述】:

我一直在思考如何在 Linux(和 C/C++)中监听按键和组合键。我的程序结构如下:

获取文本输入。如果按下 ctrl + [somekey],则从名为 somekey.txt 的文件中打印文本。 例如,如果您按 ctrl + a,程序应该从名为 a.txt 的文件中打印文本。

如果按下 ctrl + alt + [somekey]:程序将已给定(未按下 Enter)的文本输入保存到名为 somekey.txt 的文件中。示例: ctrl+alt+a --> 在将文本输入到名为 a.txt 的文件之前。如果存在,它还应该替换文件中的旧文本。可以通过强制创建文件来完成。

我不知道应该使用哪个库。也许是 sdl 或 ncurses?该程序也可以用其他语言编写,只要该程序保持轻量级以在 Raspberry Pi 等计算机中运行即可。有人可以给我写一个遵循这种结构的小代码吗?感谢(代码)建议!

【问题讨论】:

    标签: c++ linux key


    【解决方案1】:

    如果您走 SDL 路线,那应该很简单。一般来说,你的程序会有这样的流程:

    在“处理事件”步骤中,您可能需要检查该事件是否为键盘事件,如果是,请打开按下的修饰键。然后你可以执行任何必要的逻辑。

    请参阅the documentation,尤其是the keyboard category,了解更多信息。

    【讨论】:

    • 执行程序时如何等待。例如,如何在 ctrl 按下 alt 50 毫秒后等待?现在我需要同时按 ctrl 和 alt。
    • @user121032:我不明白等待与任何事情有什么关系。毕竟,您只关心他们按下字母时是否按住了 control/alt,对吧?因此,您可以只使用布尔变量来确定是否按住 control 或 alt 并酌情更新它们;当你收到一个字母按键时,检查那些布尔值,看看还有什么被按下的。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-01-09
    • 2012-01-24
    • 2020-05-07
    • 2015-01-10
    • 1970-01-01
    • 2018-12-15
    相关资源
    最近更新 更多