【发布时间】:2010-12-15 18:28:52
【问题描述】:
我想在 QtJambi 中获得代表标准 IO 流(stdin、stdout、stderr)的 QIODevice,以便在可以读取或写入新行时收到通知。
【问题讨论】:
我想在 QtJambi 中获得代表标准 IO 流(stdin、stdout、stderr)的 QIODevice,以便在可以读取或写入新行时收到通知。
【问题讨论】:
好吧,如果你只是想为这些实现 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++。)
但如果您想收到通知,这将不起作用。事实上,我怀疑除非你将标准输入/标准输出重定向到支持通知的东西,比如套接字,否则任何事情都会起作用。在这种情况下,您将使用 QAbstractSocket.setSocketDescriptor() 方法。
【讨论】: