Wie QIODevice Instanz für stdin, stdout, stderr Text-Streams in QtJambi zu bekommen?
Frage
Ich möchte QIODevice
erhalten, die Standard stellt IO-Streams (stdin
, stdout
, stderr
) in QtJambi, so dass ich benachrichtigt, kann, wenn eine neue Zeile gelesen oder geschrieben werden können.
Lösung
Nun, wenn Sie nur QIODevice Implementierung für diejenigen haben wollen, können Sie so etwas wie
verwenden könnteQFile stdin = new QFile();
stdin.open(0, new QIODevice.OpenMode(QIODevice.OpenModeFlag.ReadOnly));
QFile stdout = new QFile();
stdout.open(1, new QIODevice.OpenMode(QIODevice.OpenModeFlag.WriteOnly));
QFile stderr = new QFile();
stderr.open(2, new QIODevice.OpenMode(QIODevice.OpenModeFlag.WriteOnly));
(nicht 100% sicher über Java-Syntax, wie ich nur Qt / C ++ verwendet habe.)
Aber wenn Sie Mitteilungen haben wollen, wird dies nicht funktionieren. In der Tat, ich bezweifle, dass alles funktionieren würde, es sei denn, Sie stdin / stdout umgeleiteten etwas haben, dass die Benachrichtigungsfunktion unterstützt, wie eine Steckdose. In diesem Fall würden Sie QAbstractSocket.setSocketDescriptor () -Methode verwenden.
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow