Grundlegende Fragen zu QT?

Verschiedenes zu Qt
Antworten
sofamensch
Beiträge: 3
Registriert: 13. August 2010 02:00

Grundlegende Fragen zu QT?

Beitrag von sofamensch »

Liebe Community,

nachdem ich an der Uni ca. 1 Tag verschwendet habe um Eclipse ordentlich zum laufen zu bekommen (was es danach immer noch nicht wirklich tat), und so ähnlich ging es mir auch mit Visual Studio 2008, was auch nicht wirklich das tat was ich wollte, bin ich auf QT gestoßen.

Das Framework hat mir auf Anhieb gefallen, übersichtlich, massive Funktionserweiterungen, GUI-Programmierung,und vor allem Plattform-übergreifend.

Mein Bedenken: Ich hab damals Delphi nach langer Zeit "links liegen" lassen, da bei mir das Gefühl aufkam, dass wirklich große und seriöse, und v.a. nicht Windows-basierte Projekte dann doch eher in C-orientierten (und sei es Java) Sprachen gehalten sind.

Jetzt hab ich bei den ganzen Qt-Erweiterungen schon fast wieder das Gefühl, auf einer recht schmalen Schiene zu fahren, wenn ich die größe der deutschen und englischen Foren ansehe scheint mir QT eine doch sehr sehr überschaubare Community zu haben .. ?



Zweite Frage, ganz anderes Thema. Mit sizeof() hab ich schon früher die Größe von Objekten und abstrakten Klassen bestimmt. Warum hat jetzt aber eine beliebige Klasse, z.B. sizeof(QFileInfo) ein returnwert von 4 ?? Die Klassse besteht doch aus vielen, wesentlich größeren Feldern (Strings, int64, ..).

Danke fürs Antworten :)
franzf
Beiträge: 3114
Registriert: 31. Mai 2006 11:15

Re: Grundlegende Fragen zu QT?

Beitrag von franzf »

Qt ist ein eigenes Framework, drum versteh ich deine Entscheidungskette "von Eclipse zu Visual Studio zu Qt" nicht ganz. Meinst du mit "Qt" den "QtCreator", also die IDE? Die ist halt voll auf Qt-Entwicklung ausgelegt.
sofamensch hat geschrieben:Mein Bedenken: Ich hab damals Delphi nach langer Zeit "links liegen" lassen, da bei mir das Gefühl aufkam, dass wirklich große und seriöse, und v.a. nicht Windows-basierte Projekte dann doch eher in C-orientierten (und sei es Java) Sprachen gehalten sind.
Was ist bei dir "groß und seriös"? Googleearth? kde?
Schau dich schlau :)
Jetzt hab ich bei den ganzen Qt-Erweiterungen schon fast wieder das Gefühl, auf einer recht schmalen Schiene zu fahren, wenn ich die größe der deutschen und englischen Foren ansehe scheint mir QT eine doch sehr sehr überschaubare Community zu haben .. ?
Es gibt viele Foren, die entweder komplett auf Qt zielen oder wenigstens ein Qt-Unterforum haben. Die Community ist gigantisch, schau nur mal, wie viele Devs an kde arbeiten :P
Zweite Frage, ganz anderes Thema. Mit sizeof() hab ich schon früher die Größe von Objekten und abstrakten Klassen bestimmt. Warum hat jetzt aber eine beliebige Klasse, z.B. sizeof(QFileInfo) ein returnwert von 4 ?? Die Klassse besteht doch aus vielen, wesentlich größeren Feldern (Strings, int64, ..).
Gegenfrage: Warum willst du das wissen?
Es liegt einfach am massiven Einsatz von Pimpl :P Die ganzen Daten verstecken sich hinter einem einzigen Data-Pointer. Schau einfach mal in die Sourcen.
sofamensch
Beiträge: 3
Registriert: 13. August 2010 02:00

Beitrag von sofamensch »

Okay, offenbar ist leider gerade mein "Hauptgebiet", das wäre dann industrielle Anwendungen, noch recht schwach besiedelt mit QT ..



Warum ich das wissen wollte? Ich habe einen QFileInfo[], und wollte einfach mal seine Größe im Ram bestimmen.

Ist das erste mal das ich von Pimple höre.. ist offenbar doch ein recht weiter Weg von einfacher Objektorientierter & Mikrocontrollerprogrammierung :(
franzf
Beiträge: 3114
Registriert: 31. Mai 2006 11:15

Beitrag von franzf »

sofamensch hat geschrieben:Okay, offenbar ist leider gerade mein "Hauptgebiet", das wäre dann industrielle Anwendungen, noch recht schwach besiedelt mit QT ..
Was sind "industrielle Anwendungen"? Roboter z.B.? Oder Steuersoftware?
Für Microcontrollerprogrammierung ist Qt einfach zu fett, für viele Controller ist selbst C++ zu viel.
Warum ich das wissen wollte? Ich habe einen QFileInfo[], und wollte einfach mal seine Größe im Ram bestimmen.
Wieviel Speicher ein Objekt belegt, wirst du nie korrekt messen können, sobald dynmische Speicherallokation ins Spiel kommt.
Und rohe Arrays sind zwar schön, aber in C++ kannst du deutlich besser mit std::vector/std::list/QList/... bei dynamischer resp. [boost|std::tr1]::array bei konstanter Arraygröße arbeiten, da viele Fehlerquellen abgefangen werden (Speicherlecks, out_of_bound-Zugriffe, usw).
Ist das erste mal das ich von Pimple höre.. ist offenbar doch ein recht weiter Weg von einfacher Objektorientierter & Mikrocontrollerprogrammierung :(
PIMPL ist einfach eine schöne Möglichkeit, um die Abhängigkeiten (im Header müssen die Typen nicht komplett bekannt sein, dadurch spart man sich includes, die dann bei allen einbindenden Einheiten nicht geparst werden müssen) beim Kompilieren zu minimieren, dadurch geht das Kompilieren schneller. Nebenbei schafft es eine gute Basis, um binärkompatibel zu bleiben.
http://techbase.kde.org/Policies/Binary ... ues_With_C++
http://www.gotw.ca/gotw/024.htm
sofamensch
Beiträge: 3
Registriert: 13. August 2010 02:00

Beitrag von sofamensch »

Danke für den Crashkurs Qt, ich denke jetzt habe ich erstmal Gelegenheit da weiterzusuchen.

QVector ist eine super Sache, danke auch für den Tip :)

Reiner Spieltrieb: Gibt es eine Funktion um dann rauszufinden wieviel Ram dem Programm insgesamt vom OS zugewiesen ist? Da wären solche Pimpl's ja mit dabei.
brax
Beiträge: 208
Registriert: 11. Mai 2010 11:22

Beitrag von brax »

Da Du von VS2008 gesprochen hast, nehme ich an, dass Du unter Windows arbeitest, vielleicht hilft Dir dann das hier weiter: http://msdn.microsoft.com/en-us/library ... S.85).aspx

Vielleicht kennt hier aber auch noch jemand einen direkten Weg
Antworten