控制台应用程序中的QShortcut(无GUI)

时间:2011-07-09 21:24:44

标签: c++ qt console-application hotkeys

是否可以在控制台QCoreApplication中使用QShortcut?我没有任何QWidget对象传递给QShortcut的构造函数,我希望当用户按下一个键并且控制台窗口具有焦点时发出信号。

如果不可能采用这种方法,那么我可以使用哪种替代方案(可行的便携式)?

提前谢谢!

1 个答案:

答案 0 :(得分:2)

我不确定这是否可能,因为通常在Qt中使用的意义上的键盘事件由底层OS窗口系统传递给windows / widgets。 QShortcut 需要小部件父级的原因。

当您在终端时,您必须明确阅读终端以获取密钥。

幸运的是,这很容易做到。使用QTextStream在单独的线程中从stdin读取,并将有趣的击键转换为信号或事件。

但请注意,在控制台中,某些特殊按键将不会按原样传送给您。当然,这在很大程度上取决于控制台。