我正在编写控制台应用程序,基于QCoreApplication
,我想获取信号,当用户输入一些东西到stdin(整行或者按字符,对我的应用程序来说并不重要)。
QFile
根据文档不会发出信号,所以如果用户放入stdin
的内容,任何想法如何获取信号?
现在我正在使用qt 4.8.7 / linux / amd64,但我想将来将此代码移植到macosx和windows。
更新
我找到的解决方案应该适用于* {nix} OS
,例如linux
和mac os x
:
https://gist.github.com/gjorquera/2576569
但是对于Windows来说,它与QSocketNotfier
一样吗?
答案 0 :(得分:1)
对于Unix(Linux,OS X),this answer有一个解决方案。
对于Windows,您无法使用QSocketNotifier
:而是在QWinEventNotifier
获取的控制台句柄上使用GetStdHandle
(请参阅this answer)。代码几乎与上面答案中的Unix变体相同。