Writing directly to the Frame Buffer with PySide/PyQt
-
wrote on 15 Jul 2017, 06:12 last edited by
I have a headless Linux OS, with no X Server or window management configured. Can anyone offer any suggestions as to how I could write my QWidgets, etc. directly to the Frame Buffer?
-
Hi and welcome to devnet,
Take a look at the Qt for Embedded Linux and the various backends it proposes.
-
wrote on 15 Jul 2017, 23:20 last edited by
Thanks for that SGaist. Can you recommend any reading/source which is Qt4-compatible? My project is in PySide, so I imagine I won't have access to many of the Qt5-based backends.
-
Either go with PySide2 or Qt4 for Embedded Linux.
I'd recommend the former for new project since Qt 4 has reached end of life.
-
Either go with PySide2 or Qt4 for Embedded Linux.
I'd recommend the former for new project since Qt 4 has reached end of life.
wrote on 16 Jul 2017, 22:15 last edited by@SGaist said in Writing directly to the Frame Buffer with PySide/PyQt:
Either go with PySide2 or Qt4 for Embedded Linux.
I'd recommend the former for new project since Qt 4 has reached end of life.
Thanks SGaist :)
Since my last post, I've done some further reading and am considering using PyQt5 instead of PySide on this particular project. I am however quite confused as to the setup of PyQt5; the PyQt site says the GPL version of PyQt installs the LGPL version of Qt automatically. I.e. there is no need to build Qt yourself. However, my understanding is that I need to configure the Qt installation for my platform and requirements (e.g. EGLFS enabled). My primary concern is ensuring the application will run and display without an X environment; is this enabled as standard under Qt5.x and PyQt5, or do I need to build Qt explicitly for this?
PySide2 seems to be compatible with some of the earlier versions of Qt5.x, so hopefully PySide2 offers Frame Buffer display support.
-
No, you have to compile Qt for your target and the PySide/PyQt against that version of Qt.
One thing that should be clear, the backend used to paint your application has nothing to do with PyQt or PySide but Qt itself, thus you can develop your application on your desktop and then test it on your target.
-
No, you have to compile Qt for your target and the PySide/PyQt against that version of Qt.
One thing that should be clear, the backend used to paint your application has nothing to do with PyQt or PySide but Qt itself, thus you can develop your application on your desktop and then test it on your target.
wrote on 17 Jul 2017, 22:06 last edited by@SGaist said in Writing directly to the Frame Buffer with PySide/PyQt:
No, you have to compile Qt for your target and the PySide/PyQt against that version of Qt.
One thing that should be clear, the backend used to paint your application has nothing to do with PyQt or PySide but Qt itself, thus you can develop your application on your desktop and then test it on your target.
Thanks SGaist, your help has been very much appreciated.
I think I understand the process now. I've contacted Qt to try and make sense of the licensing, and will hopefully be giving PyQt5 with cross-compiled Qt a go in the very near future.
-
PyQt5 is either GPL or Commercial, so if you want to make a closed source application with PyQt5 you have to buy a commercial licence from them.
-
PyQt5 is either GPL or Commercial, so if you want to make a closed source application with PyQt5 you have to buy a commercial licence from them.
wrote on 18 Jul 2017, 12:22 last edited by@SGaist said in Writing directly to the Frame Buffer with PySide/PyQt:
PyQt5 is either GPL or Commercial, so if you want to make a closed source application with PyQt5 you have to buy a commercial licence from them.
This project is for an embedded device, which I believe carries its own particular considerations. I've not downloaded anything for the time being, as I need to read up on cross compiling of Qt anyway.
2/9