QT Beispielprogramm und Quellcode
-
Ich bin derzeit am überlegen was für ein Framework ich für GUIs verwenden soll, bisher habe ich die MFC verwendet und mir mal die WTL angeschaut, die WTL ist zwar wirklich super, aber a)man findet keine Dokumentation dazu b)sie ist nicht plattformunabhängig und da dachte ich mir QT könnte vllt. das richtige sein, aber würde es mir vorher gerne mal anschauen und nen kleines OSS Programm das QT verwendet wäre da perfekt
Nur ich kenne keines, hoffe ihr könnt mir helfen
-
opera ist zum beispiel mit Qt geschrieben oder die meisten adobe produkte. falls du ein etwas moderneres handy hast sind da ganz viele Qt programme drauf usw...
oder suchst du beispiel sourcecode? da musste einfach mal auf www.trolltech.de gucken, in der Qt-doku gibts massig beispiele.
-
Ich meinte ein Beispielprogramm, also nen ganz normales Programm das QT verwendet, da ich gerne sehen würde wie die GUI unter Windows aussieht.
Und nen kleines Beispielprogramm da ich gerne sehen möchte wie das ganze aussieht
Noch ne dritte Frage, bei diesem Buch ist ja eine QT Version dabei, aber da steht nur was von Borland gibts da nicht auch nen Plug-In für MS VC++?
-
SirLant schrieb:
Ich meinte ein Beispielprogramm, also nen ganz normales Programm das QT verwendet, da ich gerne sehen würde wie die GUI unter Windows aussieht.
ja, opera ist doch ein schönes beispiel.
SirLant schrieb:
Und nen kleines Beispielprogramm da ich gerne sehen möchte wie das ganze aussieht
http://doc.trolltech.com/3.3/examples.html
klick dich einfach durch.SirLant schrieb:
Noch ne dritte Frage, bei diesem Buch ist ja eine QT Version dabei, aber da steht nur was von Borland gibts da nicht auch nen Plug-In für MS VC++?
bei dem buch ist ein ms vc++ plugin dabei. aber vorsicht, du darfst damit ausschließlich open source software schreiben. für komerzielle software musst du eine lizenz erwerben.
-
Die GUI die Opera verwendet ist das das Standard Design von QT oder kann QT verschiedene Desgins darstellen, so wie Swing von Java?
-
Qt kann verschiedene Styles benutzen.
-
Ok das wollte ich wissen
Ich nehme mal an, dass QT nicht selbst zeichnet oder?
Und habe mir mal das Clock-Beispiel angeschaut und vom ganzen her gefällt mir QT
-
Ich nehme mal an, dass QT nicht selbst zeichnet oder?
AFAIK schon
-
kingruedi schrieb:
Ich nehme mal an, dass QT nicht selbst zeichnet oder?
AFAIK schon
Qt zeichnet selbst.
die fenster sehen im zweifelsfall anders aus als die von windows, falls du das meinst.
aber es gibt unterschiedliche "Qt-styles". Qt-motif z.b. dürfte selbst einem windowsfenster-verfechter gefallen.edit: das hat den vorteil das du dir sicher sein kannst das ein programm unter linux, macos und windows zu 100% gleich aussieht.
evtl gibt es auch möglichkeiten den windows-style nachzuaffen, bin ich mir aber nicht sicher.
-
Also standardmäßig gibt es den Windows-Style nicht?
Hm hast du nen Screenshot von diesem QT-Motif?
-
das "normale" Qt sieht unter linux so oder so aus. unter windows sieht es zB so oder so oder auch so oder zb so aus. ein beispiel mit motif find ich grad nicht
keine angst, ein windowsuser wird sich auf anhieb in deinem qt-programm zurecht finden. kleine unterschiede sind bei checkboxen und solchen dingen aber schon vorhanden.
ps: mir fällt grad ein, kazaa ist mit Qt geschrieben, falls du noch beispiele suchst :p
-
Ok das sieht gut aus
Ich nehme mal an, dass du mit QT arbeitest hast du zufällig VC++ und könntest mir nen Screenshot (oder mehrere
) davon zeigen wie das so aussieht, also in wie weit das integriert ist.
-
ich arbeite unter linux mit kdevelop und kompiliere dann unter windows "von hand" ohne ide. es ist so das man eine .pro datei schreibt, die sieht z.b. so aus:
SOURCES = hello.cpp abc.cpp main.cpp
HEADERS = hello.h abc.h
CONFIG += qt warn_on releasewenn ich das nun mit dem gcc kompilieren will mach ich folgendes:
qmake -o Makefile hello.pro
dann erstellt mir qmake die moc_* dateien und ein makefile welches ich einfach mit make aufrufen kann und fertig.
dann muss nur noch die .pro datei nach windows kopiert werden und qmake folgendermaßen aufgerufen werden:
qmake -t vcapp -o hello.dsp hello.pro
dann erstellt mir qmake eine .dsp datei welche ich mit dem visual studio benutzen kann.
die ersten 2 schritte übernimmt kdevelop für mich. unter windows mach ichs von hand. ich denke aber wenn du deinen vc++ mit dem plugin fütterst wird er das auch automatisch machen und du mußt es dann unter linux/macos von hand machen.
wenn du auf jeder plattform moc und qmake installiert hast und die anweisungen der dokumentation befolgst gibt es keinerlei probleme beim kompilieren.
die zusätzlichen keywords die durch Qt kommen werden unter kdevelop natürlich genauso gehighlighted wie die normalen von c++, wird vc++ mit dem plugin auch so machen.
wenn du deine gui zurecht klicken willst und sie nicht selber "programmieren" willst gibt es den Qt-Designer. der ist sehr mächtig und imo total überladen. also genau das was du von vc++ kennst :p das sieht im prinzip genauso aus wie wenn du es dir mit dem vc++ zusammenklickst.
[url=http://doc.trolltech.com/3.3/designer2.jpg]der Qt-Designer erstellt eine .ui datei, welche einen xml aufbau hat und mit "uic", welches so was ähnliches wie moc ist, in eine
.h und eine .cpp datei verwandelt wird[/url]. unter linux übernimmt das der kdevelop, ich nehme an daß vc++ das auch kann wenn es den plugin gefuttert hat.es gibt auch noch andere tolle tools von trolltech, z.b. den Qt-Linguist. der ist auch sehr mächtig und dazu da ein programm zu internationalisieren. oder Qt-Assistant oder qembed oder qvfg usw...
wirst du wenn du eine zeit mit Qt arbeitest und dich damit beschäftigst alles lieben lernen
die ganzen zusatztools kannst du alle bei trolltech runterladen und kostenlos benutzen. wenn du dein programm komerziell vertreiben willst musst du auch hier wieder eine lizenz erwerben.
-
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