[PyQt] QProcess arguments list problem
kib2
kib2 at free.fr
Wed Nov 21 20:48:37 GMT 2007
Ingmar Steen a écrit :
>>
>
> Hi,
>
> That won't work because the '>' (redirect) you use in a shell
> environment doesn't 'magically' work. The shell (bash, ksh, etc)
> performs the job of capturing the child process' 'stdout' (the regular
> output of the process) and redirects it to a file.
>
> To achieve that you can do two things:
> 1) The proper way: Use the fact that QProcess allows you to read the
> child process' stdout and write it to a file yourself.
>
>>From the documentation:
>
> QProcess allows you to treat a process as a sequential I/O device. You
> can write to and read from the process just as you would access a
> network connection using QTcpSocket. You can then write to the
> process's standard input by calling write(), and read the standard
> output by calling read(), readLine(), and getChar(). Because it
> inherits QIODevice, QProcess can also be used as an input source for
> QXmlReader, or for generating data to be uploaded using QFtp.
>
> 2) The dirty way: Use a shell to do this for you (and lose
> cross-platform compatibility as an added bonus!)
> Instead of spawning your process, spawn a shell:
> command = 'sh'
> args = ['-c', 'lout myfile.lout > myfile.ps']
>
> I really do suggest you take option 1.
>
Ok, thanks Ingmar.
I'm already catching the output to view it inside a QTextEdit (sort of
log viewer), via something like this :
self.connect(self.proc,QtCore.SIGNAL("readyReadStandardOutput()"),self.viewOutput)
When I do :
self.proc.start("pdflatex", QtCore.QStringList(["my_file.tex"]))
My pdf file is generated and I can view my output in the log view.
When I do :
self.proc.start("lout", QtCore.QStringList(["my_file.lout",">
","my_file.ps"]))
the ps file I was waiting for is seen in my log viewer in text mode, as
you pointed out.
In fact, I think I just need a flag to redirect or not the output to a
file and use only:
self.proc.start("lout", QtCore.QStringList(["my_file.lout"]))
Thanks again,
Christophe.
More information about the PyQt
mailing list