Ich möchte QIODevice
erhalten, das Standard-IO-Streams (stdin
, stdout
, stderr
) in QtJambi darstellt, damit ich benachrichtigt werden kann, wenn eine neue Zeile gelesen oder geschrieben werden kann.Wie bekomme ich QIODevice-Instanz für stdin, stdout, stderr Text-Streams in QtJambi?
5
A
Antwort
8
Nun, wenn Sie nur QIODevice Implementierung für diejenigen haben wollen, könnten Sie so etwas wie
QFile 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));
verwenden (nicht 100% sicher über Java-Syntax, wie ich nur Qt/C++ verwendet habe.)
Aber wenn Sie Benachrichtigungen haben möchten, wird dies nicht funktionieren. Tatsächlich bezweifle ich, dass irgendetwas funktionieren würde, wenn du stdin/stout nicht zu etwas umgeleitet hast, das Benachrichtigungen wie einen Socket unterstützt. In diesem Fall würden Sie die QAbstractSocket.setSocketDescriptor() -Methode verwenden.