[PyQt] Next Releases

Georg Brandl g.brandl at gmx.net
Wed Sep 10 15:36:02 BST 2014


On 09/10/2014 10:05 AM, Phil Thompson wrote:

>> Hmm, as far as I can understand the thing after looking into "man 
>> dlopen" a
>> bit: the designer loads its plugins with QPluginLoader, which by 
>> default
>> doesn't use the RTLD_GLOBAL flag (i.e. ExportExternalSymbolsHint in Qt
>> parlance).  The libpyqt4.so designer plugin is loaded, and since it is
>> dynamically linked with libpython2.7, that one gets loaded too, but is 
>> not
>> available for global symbol resolution.
>> 
>> Now the sip.so extension is *not* linked with libpython2.7 (like all 
>> Python
>> extension modules), so when it gets loaded with dlopen (by Python), the 
>> linker
>> can't find the symbols exported by the Python library.  The old code 
>> basically
>> enforced Python symbols to be global and available for resolution by 
>> the linker.
> 
> The previous behaviour has been restored in the current PyQt4 and PyQt5 
> snapshots. A little testing would be appreciated.

Thanks Phil, the designer integration now works for me again.

However, with the snapshot I get a traceback loading an .ui file at runtime.
It appears to be a simple typo, so I won't give the full trace:

  File "/usr/lib64/python2.7/site-packages/PyQt4/uic/uiparser.py", line 430, in
createSpacer
    lp = elem.attrib['layout--position']
KeyError: 'layout--position'

A similar change in the 4.11.1 -> snapshot diff in uiparser.py:515
suggests this should be 'layout-position', and making that change I see
no other immediate problem with my app.

cheers,
Georg

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 181 bytes
Desc: OpenPGP digital signature
URL: <http://www.riverbankcomputing.com/pipermail/pyqt/attachments/20140910/42e8c50a/attachment.sig>


More information about the PyQt mailing list