我想得到 QIODevice 代表标准IO流(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));

(由于我只使用QT/C ++,因此不确定Java语法。)

但是,如果您想通知,这将行不通。实际上,我怀疑除非您将STDIN/Stdout重定向到支持通知的内容,例如插座,否则任何事情都会起作用。在这种情况下,您将使用qabstractsocket.setsocketdescriptor()方法。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top