[PyQt] QtCore.QProcess.start insists on having a QStringList as second argument on Windows XP

Phil Thompson phil at riverbankcomputing.com
Fri Dec 24 22:59:13 GMT 2010


On Fri, 24 Dec 2010 22:10:48 +0100, solsTiCe d'Hiver
<solstice.dhiver at gmail.com> wrote:
> hi.
> I am using a QProcess with a list as second argument with the start
> function. It was never a problem before with python 2.6 and qt 4.6.1 and
> the corresponding pyqt.
> 
> I use python 2.7.1 on linux (compiled from source-archlinux build) and
> pyqt 4.8.2 and qt 4.7.1
> I use python 2.7.1 in Windows XP SP3, pyqt 4.8.2 from
> PyQt-Py2.7-x86-gpl-4.8.2-1.exe
> 
> Now that I retest my app, i see no problem on linux but on windows XP
> there is a problem
> 
> my code is:
> p = QtCore.QProcess(self)
> p.start(CMD, [a list of args])
> 
> in windows console:
> 
> Microsoft Windows XP [Version 5.1.2600]
> (C) Copyright 1985-2001 Microsoft Corp.
> 
> X:\>c:\Python27\python.exe m.py
> Traceback (most recent call last):
>   File m.py", line 300, in updateLabel
>     self.pronounceit(t)
>   File "m.py", line 225, in pronounceit
>     p.start(ESPEAK_CMD, ['-v', ESPEAK_LANG, '-s',  '%d' %
> ESPEAK_SPEED,'-w', self.tmpwav, '--', s])
> TypeError: arguments did not match any overloaded call:
>   QProcess.start(QString, QStringList, QIODevice.OpenMode
> mode=QIODevice.ReadWri
> te): argument 2 has unexpected type 'list'
>   QProcess.start(QString, QIODevice.OpenMode mode=QIODevice.ReadWrite):
> argument
>  2 has unexpected type 'list'
> 
> if I try with QtCore.QStringList(QtCore.QString('...')) it does work
> (even on linux) and I don't know why because I got no error.
> 
> if I try with QtCore.QStringList([my list]), i got an error on windows:
> 
> TypeError: arguments did not match any overloaded call:
>   QStringList(): too many arguments
>   QStringList(QString): argument 1 has unexpected type 'list'
>   QStringList(QStringList): argument 1 has unexpected type 'list'
> 
> but this works on linux !!!
> 
> I don't know what to do to make it work in Windows. Everything fails. 
> 
> Please, please work out those discrepancies between Linux and Windows.

...as opposed to discrepancies in your installations.

The code is the same on all platforms and works fine for me - please
supply a complete example that demonstrates the problem.

Note that no distinction is made between an argument of the wrong type and
a container argument of the right type (like a list) but containing an
element of the wrong type (ie. something that can't converted to a
QString).

Phil


More information about the PyQt mailing list