QT Beispielprogramm und Quellcode
-
Danke für die ganzen Infos, QT gefällt mir immer besser
Da ich nicht vor habe in nächster Zeit kommerziell etwas zu entwickeln reicht mir ne standard-Lizenz vollkommen und ich werde mir das Buch zulegen
GUIs designen ist gut, aber den Code erstell ich lieber von Hand, dann ist er so wie ich ihn will
Diese zusätzlichen Schlüsselwörter (sind mir in den Beispielcodes schon aufgefallen) wie funktionieren die genau? Wird da der Compiler erweitert oder sind das sowas wie die Message Maps bei der MFC (falls du die kennst, bei wxWidgets werden die auch verwendet)?
-
es gibt ein paar neue schlüsselwörter, Q_OBJECT (ohne semikolon) muss in jede classe geschrieben werden, welche Qt-Objekte benutzt die von QWidget abgeleitet sind.
dann gibt es noch private/public.. slots und privat/public.. signals. diese sind eigentlich das tolle an Qt. signale rufen slots auf und signale werden durch irgendwelche sachen aufgerufen zB einen tastendruck oder einen klick auf einen button oder in bestimmten zeitabständen.
du kannst signale auch "von hand" mit dem schlüsselwort emit aufrufen.
das sind dann auch schon alle neuen schlüsselwörter.Diese zusätzlichen Schlüsselwörter (sind mir in den Beispielcodes schon aufgefallen) wie funktionieren die genau? Wird da der Compiler erweitert oder sind das sowas wie die Message Maps bei der MFC (falls du die kennst, bei wxWidgets werden die auch verwendet)?
ich weiß leider nicht was message maps sind. bei Qt ist moc deine "compilererweiterung". moc erstellt für jede .cpp und jede .h datei in der das schlüsselwort Q_OBJECT vorkommt eine moc_.cpp und eine moc_.h datei. diese versteht dein compiler dann. hört sich nen bisschen blöd und umständlich an, ist es auch. aber das übernimmt deine ide für dich, du hast damit nichts zu tun. imo ist das so eigentlich ganz gut gelöst, dieses prinzip kann man jedem compiler beibringen. die moc_* dateien kannst du übrigens auch einfach auf andere plattformen kopieren und dort kompilieren, die sind immernoch plattformunabhängig.
-
Braucht man unter Windows nicht auf jeden Fall eine bezahlte Lizenz? Das hatten wir hier schon mal in einem Topic gehabt: nur für Linux gibts die kostenlose GPL-Lizenz. Unter Windows muß man IMMER bezahlen, außer man kauft sich die ältere Version in Form eines Lehrbuches (bei Amazon gibts das Qt-Buch mit CD-ROM).
Ich hatte mal vor 2 Monaten Qt unter Windows ausprobiert, man kann sich für 30 Tage eine Testversion bei trolltech runter laden. Qt hat mir im Prinzip sehr gut gefallen, alles sehr logisch, intuitiv und man bekommt mit drei Zeilen C++-Code ein Fenster angezeigt. Wirklich super! Die Integration in VC++ beläuft sich aber "nur" auf den Compilier-Vorgang.
Die zus. Qt-Schlüsselwörter sind Makros, die von dem Qt-Tool moc (?) vorher abgearbeitet werden. Also ein reiner Preprozessor, und danach wird alles noch mal durch GCC oder VC++ durch gejagd.
-
Message-Maps sind einfach Makros welche Funktionen, wie die Signale, zur Verfügung stellen.
Das Buch was ich weiter vorne verlinkt habe hat doch ne Lizenz dabei, man darf halt nur nicht-kommerzielle Programme damit schreiben.
-
Artchi schrieb:
Braucht man unter Windows nicht auf jeden Fall eine bezahlte Lizenz? Das hatten wir hier schon mal in einem Topic gehabt: nur für Linux gibts die kostenlose GPL-Lizenz. Unter Windows muß man IMMER bezahlen, außer man kauft sich die ältere Version in Form eines Lehrbuches (bei Amazon gibts das Qt-Buch mit CD-ROM).
ja das stimmt schon aber 1. hat er ganz am anfang geschrieben das er sich das buch kaufen will und 2. braucht man nur die richtigen suchbegriffe bei google einzugeben und kann sich die windows-qt-version auch so runterladen.
und ob ich nun das buch gekauft hab oder es mir irgendwo gesaugt hab kann ja nun wirklich niemand überprüfen.
-
Artchi schrieb:
Wirklich super! Die Integration in VC++ beläuft sich aber "nur" auf den Compilier-Vorgang.
Das ist der Haken an der Sache. Klar, ich habe auch Linux aber ich fand die Integration unter Windows echt ein wenig dürftig.
Ansonsten ist QT aber echt klasse, wer C++ kann kommt mit QT aus jeden Fall zurecht
-
Der QtDesigner 4 (für das kommende Qt4), soll doch die Fähigkeit haben sich in IDEs einzuklinken. KDevelop, Eclipse, BCB und MSVC sind glaube ich geplant.
Ich mag Qt nicht wegen dem MOC und weil es überladen wirkt, dadurch das noch mal eine eigene STL mitgeliefert wird. Das ist eben das Erbe der Vorstandards-Zeiten
-
Qt ist sicherlich historisch bedingt, nicht gerade DIE moderne C++-Library. Das es z.B. eigene Strings gibt, das alles mit Q anfängt usw... würde Trolltech bestimmt heute anders machen. Wer eine astreine saubere C++-Lösung will, muß glaub ich heute eine solche Lib bei Null anfangen.
GTKmm ist ja, wie ich finde, ein sehr schönes Beispiel, wie eine moderne C++ Lib aussehen kann oder sollte. Wobei es kein Ersatz für Qt oder wxWidgets ist...
-
kingruedi schrieb:
Der QtDesigner 4 (für das kommende Qt4), soll doch die Fähigkeit haben sich in IDEs einzuklinken. KDevelop, Eclipse, BCB und MSVC sind glaube ich geplant.
Ich mag Qt nicht wegen dem MOC und weil es überladen wirkt, dadurch das noch mal eine eigene STL mitgeliefert wird. Das ist eben das Erbe der Vorstandards-Zeiten
mh also QVector und sowas muss man nicht nutzen. aber sie können es ja nicht einfach rausmachen, dann ist es ja nicht mehr abwärtskompatibel.
ob der designer nun in der ide ist oder nicht ist mir eigentlich egal.
die wichtigste neuerung bei Qt4 ist imo das endlich konsole von gui getrennt wird, sodass man konsolenprogramme schreiben kann und trotzdem die spitzenmäßigen, plattformunabhängigen QSockets verwerden kann. da freu ich mich drauf.
MOC ist nervig, keine frage. aber das übernimmt mitlerweile fast jede ide.
-
Jetzt habt ihr mich verunsichert soll ich lieber noch warten bis QT4 kommt?
-
du wirste nochmal rund ein halbes jahr nach erscheinen von Qt4 warten müssen, denn die erste kostenlose windows version von Qt4 gibts erst mit dem neuen buch von Jasmin Blanchette und Mark Summerfield :p
Qt4 für linux/macos gibts sofort nachem erscheinen. (ich glaub ne betaversion kann man sich jetzt schon irgendwo runterladen zum testen)
-
borg schrieb:
du wirste nochmal rund ein halbes jahr nach erscheinen von Qt4 warten müssen, denn die erste kostenlose windows version von Qt4 gibts erst mit dem neuen buch von Jasmin Blanchette und Mark Summerfield :p
Qt4 für linux/macos gibts sofort nachem erscheinen. (ich glaub ne betaversion kann man sich jetzt schon irgendwo runterladen zum testen)gibts für diejenigen die das alte buch gekauft haben wenigstens n update?
was soll ich ansonsten mit dem ganzen altpapier... der qassistant reicht in der regel völlig
-
Hm bis wann kommt denn QT4 in der Final Version raus?
-
SirLant schrieb:
Hm bis wann kommt denn QT4 in der Final Version raus?
ich nehme an das trolltech die rausbringt wenn sie fehlerfrei ist, nicht zu einem bestimmten termin.
runterladen kannst du sie dir jetzt schon, hier