问题
So to give a little context, my goal here is to produce a binary which will run my Python/PyQt4 application on any recent linux (but mainly ubuntu), without requiring the user to install the pyqt4 or pyqwt5 library. (If anyone can give a better way to do that than my method below, that would be great also :)
I've got this mostly working with bbfreeze by installing an ubuntu 8.04 virtual machine (the resulting code from bbfreeze will not run on a system with an older glibc installation), compiling the latest versions of qt, pyqt etc on this vm and freezing the application on that.
On ubuntu 8.04, when running my application it uses a very old-looking style, where on ubuntu 10.04 it looks much nicer.
That in itself isn't an issue, but the problem is that when I run the bbfreezed code from ubuntu 8.04 on ubuntu 10.04, the program has the same UI style as when running on 8.04, which looks really bad on 10.04.
So I'm wondering, how do I make sure that my frozen code will look good on all platforms? I think that bbfreeze must be only including the ui style used on 8.04 rather than all of them, but I'm not sure how to resolve this.
Hopefully this is clear enough!
回答1:
I found the solution (I think, still recompiling qt) - I just didn't have the QGtkStyle installed on my ubuntu 8.04, since even if you pass the -gtkstyle option qt's configure will silently not compile it if you don't have the correct gtk+ dev libraries installed.
I'm also using pyinstaller rather than bbfreeze now,but this would have affected both equally.
来源:https://stackoverflow.com/questions/3690383/using-pyqt4-with-bbfreeze-wrong-ui-style-used