1
我正在編寫基於QCoreApplication
的控制檯應用程序,並且我想要獲取信號,當用戶將某些內容輸入到標準輸入時(整行一行或按字符輸入,對我的應用程序來說並不重要)。如何獲得控制檯輸入(stdin)的類QIODevice信號?
QFile
根據文檔不發射信號,所以任何想法如何獲得信號,如果用戶把東西放在stdin
?
現在我正在使用qt 4.8.7/linux/amd64,但我希望在未來將此代碼移植到macosx和windows。
更新
我找到的解決方案,應該基於OS
* nix的工作,像linux
和mac os x
:
https://gist.github.com/gjorquera/2576569
但是,我們的窗戶,將它也與QSocketNotfier
?
您的程序在等待用戶輸入時還在做什麼?什麼? –
@JohnZwinck它通過套接字與不同的服務進行通信,所以我希望基於信號/插槽的「異步」解決方案,因爲它更簡單,支持多線程代碼 – user1244932
根據此:http://www.qtcentre.org/archive /index.php/t-20357.html你不能在Windows上使用'QSocketNotifier'和'fileno(stdin)'。但看看這個答案:http://stackoverflow.com/a/23164552/4323 –