[Kde-bindings] C#, Qyoto, Qt - How to read output from QProcess?
Richard Dale
rdale at foton.es
Fri Feb 19 10:06:39 UTC 2010
On Friday 19 February 2010 06:02:47 am linuxoidoz at yahoo.com.au wrote:
> All I've done was to move
>
> proc = new QProcess(this);
>
> from the MainWindow class constructor to the slot and it's working now,
> that is on readyReadStandardOutput(), it writes my text into a QTextEdit
> box. But how can I output the process output into the QTextEdit? This:
>
> [Q_SLOT]
> private void updateLog() {
> QByteArray data = proc.ReadAllStandardOutput();
> QTextCodec codec = QTextCodec.CodecForUtfText(data);
> string str = codec.ToUnicode(data);
> txtEdit.Append(str);
> }
>
> only crashes the app with "System.MemberAccessException: Cannot create an
> instance of Qyoto.QTextCodec because it is an abstract class". I used the
> Qt C++ example and modified it to C#. There are many examples which show
> you can cast byte array type to string with QString(byteArray), but
> there's no QString in Qyoto, and (String)byteArray complains it can't
> convert QBytaArray to string. I'd appreciate your help. Thank you.
We've added a QByteArray.ToArray() method to convert it to a byte[], which you
can then convert to a string with something like
System.Text.Encoding.ASCII.GetString.
-- Richard
More information about the Kde-bindings
mailing list