Qt Prgramme auf anderen Windows-Pcs laufen lassen
-
Hallo community,
ich habe mir gerade mal Qt4 runtergeladen, als Einstieg in die GUI Programmierung. Ich habe mir erstmal einige Bsp-Codes angeschaut mitsamt den bereits kompilierten Releases. Wenn ich jetzt aber eins der Programme (z.b. examples/mainwindows/application) auf einem anderen winxp-pc laufen lasse, startet gar nix. was wird auf einem pc benötigt um Qt programme laufen zu lassen, bzw. was muss man machen (evtl. beim linken) damit so ein porgramm auf jedem windows-pc läuft?
-
Hi,
Hier zumindest qtgui4.dll und qtcore4.dll (release) bzw. qtguid4.dll und qtcored4.dll (debug). In Abhängigkeit des benutzten Compilers brauchst Du vermutlich noch weitere DLLs.
Mit sowas http://www.dependencywalker.com/ lässt sich das leicht herausfinden.
cu, Bernd
-
ok vielen dank bernd, da gibts tatsächlich ne menge dlls, von denen die meisten aber immer am start sein müssten (user32.dll, kernel32.dll usw.). aber auch qtgui4.dll und qtcore4.dll wurden aufgelistet und die sind auf dem anderen pc tatsächlich nicht vorhanden. bisher hab ich zwar noch kein qt projekt selbst gebaut, aber da dürfte es doch auch eine möglichkeit geben, das statisch zu linken oder?
-
Genau aus diesem Grund will ich jetzt auf wxWidgets umsteigen, Qt-Anwendungen sind nicht wirklich plattformunabhaengig, da sie immer die Qt-dlls voraussetzen, die man umstaendlicher weise mitausliefern muss, wenn man ein Windowsprogramm verteilen will. Statisch kompilieren geht meines Wissens nur sehr umstaendlich bis garnicht. Ausserdem sind Qt-Anwendungen sehr sehr langsam. Ich hoffe, dass sich das jetzt bei wxWidgets verbessert.
-
Hi,
katana. schrieb:
Genau aus diesem Grund will ich jetzt auf wxWidgets umsteigen, Qt-Anwendungen sind nicht wirklich plattformunabhaengig, da sie immer die Qt-dlls voraussetzen, die man umstaendlicher weise mitausliefern muss, wenn man ein Windowsprogramm verteilen will.
Das kümmert mich eigentlich nicht. Ein paar DLLs mehr oder weniger, was soll's?
katana. schrieb:
Statisch kompilieren geht meines Wissens nur sehr umstaendlich bis garnicht.
Ich habe das bisher noch nicht gemacht, so kompliziert sieht das nun aber auch nicht aus:
http://doc.trolltech.com/4.3/deployment-windows.html
katana. schrieb:
Ausserdem sind Qt-Anwendungen sehr sehr langsam. Ich hoffe, dass sich das jetzt bei wxWidgets verbessert.
Da fehlt mir leider der Vergleich. Sind Qt-Apps - verglichen mit anderen GUIs - denn wirklich 'sehr sehr' langsam ??
cu, Bernd
-
@ katana: habs bisher nur unter windows getestet und da läufts eigentlich ohne probleme. und wxWidgets hab ich auch schon ausprobiert: wenn man das dynamisch linkt, wirst du auch dlls mitausliefern müssen, wenn mans hingegen dynamisch linkt wirds glaube ich relativ groß. also ein HelloWorld-Fenster-proggy hat da schon seine 3 mb aufwärts. das is natürlich nich soooo tragisch aber verglichen mit einem win32 assembly programm (2-4kb), das das gleiche macht (und intern auch auf der winapi aufbaut) strörts schon ein wenig. und das sie so viel langsamer sein sollen, als andere gui-apps... kann mir das kaum vorstellen. weißt du das aus eigener erfahrung? also ich fand eben das signal/slot konzept ziemlich logisch und einleuchtend. außerdem typensicher im vergleich zu callbacks...
-
und nicht zu vergessen: die wx-makros à la DELARE_EVENT_TABLE usw. weiß nicht so recht was das darstellen soll (also die makro-geschichte, was ne event table is weiss ich) und ob das sinnvoll is. ich mein bei qt gibts zum teil auch makros aber irgendwie fand ich programmieren mit qt im vergleich zu wx (um genau zu sein PyQt4 und wxPython) irgendwie... sagen wir mal intuitiver (also gerade die verbindung der einzelnen widgets untereindander).
-
@hulk
hmm, 3mb ist ja auch ne menge, immernoch ein mb kleiner als Qt. Aber iche gebe dir recht, der Pragrammierstil von Qt ist wirklich sehr intuitiv. Beim ersten blick auf wxW sieht das nich ganz so simpel aus, aber muss erst mal zeit finden mir ein richtiges urteil zu bilden.
Zu der Geschwindigkeitssache: Nun ich habe kein Vergleich von Qt zu anderen libs, aber einen zu direkt API-Programmierung. Ich habe ein sehr simples Programm, welches ich früher direkt in WinAPI geschrieben habe auf Qt portiert und war schockiert wie unglaublich langsam das auf einmal war. Das Programm zeichnet nur ein paar Zeitreihen/Funktionen die man per Scrollbar in Echtzeit manipulieren kann und welche dann sofort neu gezeichnet werden.
Daher such ich eine Lib die möglichst nahe am Betriebssystem ist aber das nötgste bietet.
Habe jetzt angefangen meine eigene Mini-Lib zu schreiben, mal sehen, wie weit ich komme.