Seite 1 von 1

Look and Feel - static Qt

Verfasst: 21. Februar 2012 09:02
von kumpane
Hallo qtforum,
ich versuche schon seit längeren meine Qt Applikation statisch zu erstellen, so dass die Anwendung das Look and Feel, QPlastiqueStyle, benutzt.
Unter Windows funktioniert alles. Unter x11(ubuntu) wird das PRogramm wie folgend angezeigt.

Das Programm sieht danach so aus
Bild

Den Style setzt ich in dem Programm mit folgenden Code

Code: Alles auswählen

QApplication::setStyle(new QPlastiqueStyle);
Das funktioniert auch eigentlich, muss ich jedoch bei einer statischen Build was beachten?

Meine Vermutung ist, dass der Style eben nicht mit in dem Build ist und deswegen wird das Programm so grässlich angezeigt.
Der QPlastiqueStyle ist von KDE, aber befindet sich in dem Modul QtGUI.

Hat es was mit folgenden Plugins zutun?
  • qjpeg
    qico
    qsvg
    qtiff
Das ist ein Hilferuf ;)

Re: Look and Feel - static Qt

Verfasst: 21. Februar 2012 09:26
von Christian81
Static builds können per Definition keine Plugins laden.
Abgesehen davon - warum ein Static Build unter Linux?

Re: Look and Feel - static Qt

Verfasst: 21. Februar 2012 09:43
von kumpane
Vielen Dank für dein Antwort, die Applikation soll unter Linux ohne großen Einrichtung Aufwand, für Dummys, benutzbar sein.
Wünschenswert wäre da eine Applikation die man nur noch auszuführen hat, deswegen das statische linken.
(Die Benutzer die es können und keine riesen große Applikation haben wollen, bekommen die Möglichkeit alles dynamisch zu linken.)

Aber naja das statische funktioniert ja soweit nur will das Look and Feel mit QPlastiqueStyle will sich nicht anzeigen ;)

Eine weitere Idee wäre:
Meine Applikation verwendet das QtCore und QtGUI Modul so wie eine weitere externe Bibliothek (http://www.hyperrealm.com/libconfig/) kann man diese Abhängigkeiten mit Plugins realisieren?

-----------------------------------------------------------------------------------------------------------
Mit der Konfiguration sollte es klappen

Code: Alles auswählen

./configure -static -prefix ./../qtstatic  -opensource -confirm-license -release -fast  -fontconfig 
Mit der fontconfig wird es laufen, wie kann man im pro File unter LIBS folgende Dateien einbinden ?
  • fontconfig/fontconfig.h, libfontconfig,freetype.h and libfreetype
Hat damit jemand Erfahrung?

Re: Look and Feel - static Qt

Verfasst: 21. Februar 2012 20:29
von Artemus
Wenn du keine kommerzielle Lizenz hast sondern LGPL nimmst, dann darfst du gar nicht statisch linken. (Zumindest wenn ich richtig informiert bin)

Re: Look and Feel - static Qt

Verfasst: 22. Februar 2012 17:16
von kumpane
Vielen Dank für diese sehr wichtige Information. Ich habe das Thema ein bisschen recherchiert,leider konnte ich kein zuverlässiges Ergebnis finden sondern eher nur Halbwissen. Deswegen will ich auch mein Halbwissen teilen ;) So wie ich dass jetzt verstanden habe verbietet die LGPL Lizenz das statische linken, denn in diesen Vorgang würde man die Qt Bibliothek als "eigene" und eben nicht als externe Bibliothek erkenntlich machen.

Re: Look and Feel - static Qt

Verfasst: 22. Februar 2012 17:43
von Christian81
Wenn Dein Sourcecode auch unter LGPL (oder einer vergleichenbaren Lizenz) steht dann gibts damit keine Probleme...

Re: Look and Feel - static Qt

Verfasst: 23. Februar 2012 09:48
von franzf
Nein, statisch linken ist NICHT verboten. Diese Klausel besagt nur, dass man die Qt-Libs austauschen können muss (z.B. wg. security-updates). Wenn du statisch linken willst, erreichst du das dadurch, dass du deine Objectfiles mitlieferst, so dass diese wieder zu einem executable gelinkt werden können.

Wichtig:
Das ist mein Kenntnisstand und KEINE verbindliche Rechtsauskunft! Wenn du sicher gehen willst, musst du dich an einen Anwalt wenden.

Re: Look and Feel - static Qt

Verfasst: 23. Februar 2012 16:52
von kumpane
In den paar Posts über die LGPL Lizenz, wurde ganz gut zusammengefasst was möglich ist und was nicht. Vielen Dank dafür ;)

Zu den Thema von diesen Thread, es hat nichts mehr dem Look n Feel zu tun! Die Build einer statischen Qt Bibliothek muss ebenso die Abhängigkeiten für ein x11 System erfüllen. Diese Abhängigkeiten sind hier http://developer.qt.nokia.com/doc/qt-4. ... s-x11.html in der Qt Dokumentation.

Um eine Applikation zu entwickeln die so wenig wie möglich von Systembibliotheken abhängt, habe ich letztendlich eine Qt Build wie folgend konfiguriert.

Code: Alles auswählen

./configure -static -prefix ./../qtstatic -opensource -confirm-license -release -fast -no-multimedia -no-webkit -no-opengl -no-xmlpatterns -no-sql-sqlite -no-sql-mysql -no-dbus -nomake demos -nomake docs -nomake translations -fontconfig -xrender -xrandr -xcursor -xfixes -xinerama -xinput -platform linux-g++ -optimized-qmake -qt-zlib -qt-gif -qt-libpng -qt-libmng -qt-libtiff -qt-lib-jpeg
Damit wird die Applikation richtig dargestellt, das Problem ist erledigt.