Как получить экземпляр QioDevice для Stdin, Stdout, Stderr Text Streams в Qtjambi?

StackOverflow https://stackoverflow.com/questions/4453497

  •  10-10-2019
  •  | 
  •  

Вопрос

Я хотел бы получить 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 ().

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top