[PyQt] Problem loading qml when pyqtdeployed
Phil Thompson
phil at riverbankcomputing.com
Tue Jan 27 17:05:10 GMT 2015
On 09/01/2015 5:19 pm, bootch at nc.rr.com wrote:
> In short:
>
> qmlUrl=QUrl.fromLocalFile(QFileInfo(__file__).path() +
> "/appPackage/qml/toolBar.qml")
> quickView.setSource(qmlUrl)
>
> doesn't work when pyqtdeployed, although it works when invoked from
> Python. Also, I can load icons using similar construct (without
> wrapping in QUrl(). I don't see a way to load the quickview without
> calling QUrl() ).
>
> The error from Qt is:
> 'file:///home/bootch/pensoolpyqtdeploy/:/appPackage/qml/toolBar.qml:
> File not found'
> And qmlUrl.toString() is: 'file::/appPackage/qml/toolBar.qml'
> both of which seem garbled to me.
>
> I put a small example Eclipse project including the .pdy file at
> https://github.com/bootchk/testQmlFromResources.git
>
> Another strangeness is that invoked from Python, for an icon
> '/images/foo.png' works but for qml '/qml/toolBar.qml' does not work.
> Only '/appPackage/qml/toolBar.qml' works, even though the qml and
> images directory are at the same level in the directory structure.
URLs referencing embedded files (ie. those whose path starts with ':')
need to be prefixed with qrc: rather than file:. fromLocalFile() should
handle this automatically - but it doesn't.
The following should work...
root = QFileInfo(__file__).absolutePath()
root_url = 'qrc:' if root.startswith(':') else root
url = QUrl(root_url + '/appPackage/qml/toolBar.qml')
Phil
More information about the PyQt
mailing list