Как получить экземпляр QioDevice для Stdin, Stdout, Stderr Text Streams в Qtjambi?
Вопрос
Я хотел бы получить QIODevice
это представляет стандартные потоки ввода -вывода (stdin
, stdout
, stderr
) в Qtjambi, чтобы я мог получить уведомление всякий раз, когда новая строка может быть прочитана или написана.
Решение
Ну, если вы просто хотите получить реализацию QioDevice для них, вы можете использовать что -то вроде
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));
(Не на 100% уверен в синтаксисе Java, так как я использовал только QT/C ++.)
Но если вы хотите иметь уведомления, это не сработает. На самом деле, я сомневаюсь, что что -то будет работать, если у вас нет stdin/stdout, перенаправленного на то, что поддерживает уведомления, например, гнездо. В этом случае вы бы использовали метод qabstractsocket.setsocketdescriptor ().
Не связан с StackOverflow