Unsolved CrossCompile auf Raspberry Pi 3 - QtWidget nur Fullscreen?
-
Moin,
für ein kleineres Projekt brauchen wir ein grafisches Interface und das wollte ich mit C++ und Qt zaubern.
Nach ein paar Stunden hab ich es aufjedenfall schon geschafft, dass alles richtig kompiliert wird und ich von Ubuntu aus programmieren/kompilieren kann, und die Ausführung dann auf dem Pi ist.
Allerdings ist die Anwendung IMMER Fullscreen und das war nicht so geplant. Am Ende sollte das wie jedes andere Programm einfach über einen Doppelklick auf dem Desktop startbar sein und nicht direkt Fullscreen(Übers Terminal).
Habe schon gelesen, dass das ich das Projekt wohl mit xbc o.ä nutzen soll, allerdings..
Wie? Muss ich nur einen Haken ändern, oder gleich das ganze Projekt umschreiben?
Lieben Gruß, Daniel -
@haxxe
auf dem Pi muss ein XServer laufen, sonst hast du logischerweise keine Windows.
Dann muss noch das X11 platform plugin in Qt vorhanden sein. Dazu kannst du mal in den qtbase/plugins/platforms ordner sehen ob es vorhanden ist ((libqxcb.so oder so ähnlich).Hast du Qt selbst für den Pi kompiliert?
-
Wenn du Qt mit XCB kompilliert hast, kannst du dein App so ausrufen:
./path/to/app -platform xcb
Das soll Fenster nutzen und nicht die EGLFS (fullscreen) plugin.
Schau hier: http://doc.qt.io/qt-5/qguiapplication.html#QGuiApplication fur mehr Infos. Ich hoffe das hilft.
Entschuldigung fur mein Deutsch ;-) Ich kann Deutsch nur ein bisschen.
-
Moin,
also ich habe das Standard Raspbian drauf, nicht die minimal Installation.
ich habe das Programm schon versucht zu starten mit -platform xcb aber dann meint es es fehlt was und das Programm solle neu installiert werden.
Ich habe Qt nicht selbst kompiliert sondern mich auf qtrpi.com verlassen, damit ging das sehr einfach und problemlos.@sierdzio , danke für deine Hilfe, ich hab schon ein wenig geguckt aber noch nichts gefunden was mir hilft.
Höchstwahrscheinlich muss ich irgendwie xcb auf meine Qt Installation auf dem Pi bekommen?
Habe gerade mal gesucht und habe im Ordner
pi@raspberrypi:/opt/qtrpi/raspi/qt5pi/plugins/platforms $
Finde ich libqxbc vor.Und jetzt?
Vielen Dank schon mal für eure Hilfe.EDIT: http://www.qtrpi.com/home , exakt diese Schritte habe ich durchgeführt. Grundlegend läuft auch alles, ich brauch nur zwingen xbc, statt eglfs.
EDIT2: Ich hab noch weiter rumprobiert und sogar den Pfad richtig angegeben, aber er findet es immer noch nicht richtig:
pi@raspberrypi:~ $ ./Sample -platform xcb This application failed to start because it could not find or load the Qt platform plugin "xcb" in "/opt/qtrpi/raspi/qt5pi/plugins/platforms/". Available platform plugins are: eglfs (from /opt/qtrpi/raspi/qt5pi/plugins/platforms/), linuxfb (from /opt/qtrpi/raspi/qt5pi/plugins/platforms/), minimal (from /opt/qtrpi/raspi/qt5pi/plugins/platforms/), minimalegl (from /opt/qtrpi/raspi/qt5pi/plugins/platforms/), offscreen (from /opt/qtrpi/raspi/qt5pi/plugins/platforms/), xcb (from /opt/qtrpi/raspi/qt5pi/plugins/platforms/), eglfs, linuxfb, minimal, minimalegl, offscreen, xcb. Reinstalling the application may fix this problem. Abgebrochen
-
Warscheinlich muss du Qt selbs (cross-)kompilieren.
Ich habe am Wochenende XCB plugin auf RPi probiert. Es lauft uberhaupt nicht mit Qt EGLFS (weil EGL for XCB ist fur RPi nicht verfugbar). Ich habe aber Qt mit linux-g++ makespecs kompiliert und das hat mit XCB (also in Fenstern) funktioniert. Das problem was das ich habe das mit desktop OpenGL eingestellt und das lauft sehr, sehr langsam. Vielleicht es ist moglich Qt auf raspberry mit OpenGL ES und XCB zu kompilieren - ich glaube ja, aber das habe ich bisher nicht gemacht. Vielleicht am nechste Wochenende...
-
Ok, das kann ich leider nicht richtig.
Ich habe auch das Problem, dass die Maus langsam ist bei EGLFS, ich muss nur noch herausfinden, wie ich das hinbekomme, dann bleib ich wahrscheinlich bei EGLFS weil ich doch vielleicht auf OpenGL zugreifen muss, bzw. ich wollte Qt3D nutzen.