如何获取类似 QIODevice 的控制台输入信号 (stdin)
How to get QIODevice-like signals for console input (stdin)?
我正在编写基于QCoreApplication
的控制台应用程序,当用户在 stdin 中输入某些内容时,我想获取信号(一次整行或按字符,这对我的应用程序来说并不重要)。
QFile
根据文档不发出信号,所以如果用户放入要stdin
的东西,如何获得信号的任何想法?
现在我正在使用qt 4.8.7/linux/amd64,但我希望将来将此代码移植到macosx和Windows上。
更新
我找到了应该适用于基于 *nix OS
的解决方案,例如 linux
和 mac os x
:
https://gist.github.com/gjorquera/2576569
但是窗户呢,也会和QSocketNotfier
一起吗?
对于Unix(Linux,OS X),这个答案有一个解决方案。
对于 Windows,您不能使用 QSocketNotifier
:而是使用从GetStdHandle
获取的控制台句柄上的QWinEventNotifier
(请参阅此答案)。代码将与上面答案中的Unix变体几乎相同。
相关文章:
- Qt VTK交互风格的信号到小部件
- C++:将控制台输出存储在宏中更好吗
- 获取日期异步信号安全吗?如果在信号处理程序中使用,它会导致死锁吗
- 如何将点击的信号和插槽添加到qt中的自定义按钮中
- 在while循环中输入带有std::cin的字符串后,控制台会输出大量胡言乱语
- SSH通过/sbin/SSH无法读取RSA密钥文件(从控制台运行)
- 如何在没有信号的情况下从C++执行QML插槽
- 线程之间的布尔停止信号
- C++控制台应用程序阻止退出
- 如何修复此iFile以将.txt输出到控制台
- 为什么控制台要求输入,即使代码中没有输入
- 如何在信号处理程序和普通函数中对全局变量进行互斥读写操作
- 当用户在qtablewidget中输入单元格时,如何获得信号?C++
- 有可能在信号处理程序中设置promise吗
- 子进程 c++ 的 Windows 控制台信号处理
- 在 qt 控制台应用程序中未定义对 'vtable for myObj' 的引用 - 信号和插槽
- 如何获取类似 QIODevice 的控制台输入信号 (stdin)
- 在控制台应用程序中使用信号和插槽
- 信号量无法阻止 Win32 控制台应用中的线程
- c++控制台程序接收到SIGSEGV信号,出现分段故障