【发布时间】:2011-10-02 00:39:54
【问题描述】:
是否可以在控制台 QCoreApplication 中使用 QShortcut?我没有任何 QWidget 对象可以传递给 QShortcut 的构造函数,我希望在用户按下一个键并且控制台窗口具有焦点时发出信号。
如果这种方法不可行,我有什么(最好是便携的)替代方案?
提前谢谢你!
【问题讨论】:
标签: c++ qt console-application hotkeys
是否可以在控制台 QCoreApplication 中使用 QShortcut?我没有任何 QWidget 对象可以传递给 QShortcut 的构造函数,我希望在用户按下一个键并且控制台窗口具有焦点时发出信号。
如果这种方法不可行,我有什么(最好是便携的)替代方案?
提前谢谢你!
【问题讨论】:
标签: c++ qt console-application hotkeys
我不确定这是否可能,因为通常在 Qt 中使用的键盘事件是由底层操作系统窗口系统传递到窗口/小部件的。 QShortcut 需要小部件父级是有原因的。
当您在终端中时,您必须显式读取终端以获取密钥。
幸运的是,这很容易做到。使用QTextStream 在单独的线程中读取stdin,并将有趣的击键转换为信号或事件。
但请注意,在控制台中,某些特殊按键不会按原样提供给您。当然,这在很大程度上取决于控制台。
【讨论】: