PyQt leaves C-code in python modules

D

Dave

I'm having a strange problem with the pyqt-tools in the latest Debian
packages. When I run
$ pyuic colortool.ui > colortool.py
Extracting init()
Extracting loadSettings()
Extracting saveSettings()
....
it produces 'colortool.py' with python function headers, but the body of the
functions are still in C. There are no error messages, just the normal log
of "extracting" functions.


The file colortool.ui is the tutorial example from the Qt Designer manual,
and it works correctly when compiled in C. The versions on all the relevant
packages seem to be correct:

-> pyuic is from package pyqt-tools 3.8-2.1 This package depends on:
libc6 (>= 2.3.2-1), libgcc1 (>= 1:3.3.1-1), libqt3c102-mt (>= 3:3.2.1),
libstdc++5 (>= 1:3.3.1-1), xlibs (>> 4.1.0)
-> Current versions shown by dpkg are:
libc6 2.3.2-9, libgcc1 1:3.3.2-1, libqt3c102-mt 3:3.2.1-6, libstdc++5
1:3.3.2-1, xlibs 4.2.1-12.1
-> designer is from package qt3-designer 3:3.2.1-6


$ pyuic -version
Python User Interface Compiler 3.8 for Qt version 3.2.1


I have used Python and Qt in Redhat 9, after great effort to correct
mismatched versions in their packaging. That is the only reason I suspected
packaging problems here, but so far I've had much better experience with
Debian's packages.



This is very frustrating. I've committed to a project using Qt and Python,
and I'm totally dependent on pyuic. Any suggestions would be much
appreciated.



-- Dave
 
P

Phil Thompson

I'm having a strange problem with the pyqt-tools in the latest Debian
packages. When I run
$ pyuic colortool.ui > colortool.py
Extracting init()
Extracting loadSettings()
Extracting saveSettings()
...
it produces 'colortool.py' with python function headers, but the body of
the functions are still in C. There are no error messages, just the normal
log of "extracting" functions.


The file colortool.ui is the tutorial example from the Qt Designer manual,
and it works correctly when compiled in C. The versions on all the
relevant packages seem to be correct:

-> pyuic is from package pyqt-tools 3.8-2.1 This package depends on:
libc6 (>= 2.3.2-1), libgcc1 (>= 1:3.3.1-1), libqt3c102-mt (>= 3:3.2.1),
libstdc++5 (>= 1:3.3.1-1), xlibs (>> 4.1.0)
-> Current versions shown by dpkg are:
libc6 2.3.2-9, libgcc1 1:3.3.2-1, libqt3c102-mt 3:3.2.1-6, libstdc++5
1:3.3.2-1, xlibs 4.2.1-12.1
-> designer is from package qt3-designer 3:3.2.1-6


$ pyuic -version
Python User Interface Compiler 3.8 for Qt version 3.2.1


I have used Python and Qt in Redhat 9, after great effort to correct
mismatched versions in their packaging. That is the only reason I
suspected packaging problems here, but so far I've had much better
experience with Debian's packages.



This is very frustrating. I've committed to a project using Qt and Python,
and I'm totally dependent on pyuic. Any suggestions would be much
appreciated.

That's because the form includes embedded C++ code. There is nothing to stop
you embedding Python code (just ignore the C++ style function definition) and
it will be properly extracted.

What pyuic doesn't do is look at the embedded code and try to work out if it
is Python or something else.

Phil
 
D

Dave

Phil Thompson said:
I'm having a strange problem with the pyqt-tools in the latest Debian
packages. When I run
$ pyuic colortool.ui > colortool.py
Extracting init()
Extracting loadSettings()
Extracting saveSettings()
...
it produces 'colortool.py' with python function headers, but the body of
the functions are still in C. There are no error messages, just the normal
log of "extracting" functions.
[...]
That's because the form includes embedded C++ code. There is nothing to stop
you embedding Python code (just ignore the C++ style function definition) and
it will be properly extracted.

What pyuic doesn't do is look at the embedded code and try to work out if it
is Python or something else.

OK, I can ignore the C++ embedded code, but it seems that Python can't.

Python 2.3.2 (#2, Oct 6 2003, 08:02:06)
[GCC 3.3.2 20030908 (Debian prerelease)] on linux2Traceback (most recent call last):
File "<stdin>", line 1, in ?
File "colortool.py", line 225
QSettings settings;
^
SyntaxError: invalid syntax


I must be missing a switch or something.



-- Dave
 
D

Dave

Phil Thompson said:
I'm having a strange problem with the pyqt-tools in the latest Debian
packages. When I run
$ pyuic colortool.ui > colortool.py
Extracting init()
Extracting loadSettings()
Extracting saveSettings()
...
it produces 'colortool.py' with python function headers, but the body of
the functions are still in C. There are no error messages, just the normal
log of "extracting" functions.
[...]
That's because the form includes embedded C++ code. There is nothing to stop
you embedding Python code (just ignore the C++ style function definition) and
it will be properly extracted.

What pyuic doesn't do is look at the embedded code and try to work out if it
is Python or something else.

Oops. Please ignore my previous post. I misunderstood what Phil was
saying. I see now what to do. Just write Python code in the body of the
C++ stub functions ( leaving the outer { } in place ) , and pyuic will copy
that code verbatim into the body of the translated Python functions.
Excellent.

Many thanks.

-- Dave
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
473,755
Messages
2,569,536
Members
45,013
Latest member
KatriceSwa

Latest Threads

Top