QShortcut в консольном приложении (без графического интерфейса) - PullRequest
2 голосов
/ 10 июля 2011

Можно ли использовать QShortcut в консоли QCoreApplication?У меня нет объектов QWidget для передачи конструктору QShortcut, я хочу, чтобы сигнал излучался, когда пользователь нажимает клавишу, а окно консоли имеет фокус.

Если такой подход невозможен, то что (желательно переносимо)) есть ли альтернативы?

Заранее спасибо!

1 Ответ

2 голосов
/ 10 июля 2011

Я не уверен, что это вообще возможно, потому что события клавиатуры в том смысле, который обычно используется в Qt, доставляются в окна / виджеты базовой оконной системой ОС. Есть причина, по которой QShortcut требуется родительский виджет.

Когда вы находитесь в терминале, вы должны явно прочитать терминал, чтобы получить ключи.

К счастью, это легко сделать. Используйте QTextStream для чтения из stdin в отдельном потоке и перевода интересных нажатий клавиш в сигналы или события.

Однако обратите внимание, что в консолях некоторые специальные нажатия клавиш не будут доставляться вам как есть. Конечно, от консоли многое зависит.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...