【问题标题】:How to get QIODevice instance for stdin, stdout, stderr text streams in QtJambi?如何在 QtJambi 中获取标准输入、标准输出、标准错误文本流的 QIODevice 实例?
【发布时间】:2010-12-15 18:28:52
【问题描述】:

我想在 QtJambi 中获得代表标准 IO 流(stdinstdoutstderr)的 QIODevice,以便在可以读取或写入新行时收到通知。

【问题讨论】:

    标签: java qt io qt-jambi


    【解决方案1】:

    好吧,如果你只是想为这些实现 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() 方法。

    【讨论】:

      猜你喜欢
      • 2013-05-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-07-22
      • 1970-01-01
      • 2018-08-29
      相关资源
      最近更新 更多