Hat Qt (oder eine vergleichbare GUI) noch was mit C++ zu tun?
-
Hallo zusammen!
Zugegeben, die Frage hört sich blöd an. Ich hoffe mich damit auch nicht gleich zum Volldepp zu erklären.Aber ich habe das Gefühl (welches sich nach ein paar Tutorials so rausstellt), dass Qt mehr eine eigene Sprache ist als eine GUI für C++.
Ich habe mir immer gedacht, man könnte eine Textbox erzeugen, und mit einem Buttonklick deren Inhalt in einer Variable speichern. Die bearbeitet man dann wie unter Konsolenprogrammen mit C++. Aber irgendwie scheint das so nicht zu funktionieren.
Irgendwie hat es für mich den Anschein, als macht man die ganze "Action" unter Qt-Programmen mehr mit Qt als mit C++...
-
Hi!
Wie kommst du auf diese Idee? Ganz im Gegenteil QT ist reines C++. Nur das Eventhandling managed QT etwas eigenartig. Nämlich mit dem Prä-Prä-Prozessor MOC. Der verbindet die Signals und Slots. Das ist aber intern auch über Templates gemanaged. Wenn du mal etwas in die Tiefe gräbst, wirs du schon draufkommen, dass die bei Trolltech auch nur mit Wasser (C++) kochen.
mfg bauerb
-
Dürfte ich dann fragen, wie das denn ungefähr aussehen würde, wenn man den Inhalt einer Textbox in einer Variable speichert, um damit weiter zu arbeiten? Wär klasse, wenn du oder jemand anders das mal zeigen könnte. Oder geht das irgendwie nicht, weil ich da was grundsätzlich falsch verstehe... ?
-
Also, Qt ist eine GUI Bibliothek die in C++ geschrieben wird. Wie die meisten GUI's Bibliotheken bringt diese eigene Klassen und Funktionen mit sich. Dies ist vermutlich der Grund weshalb du meinst das Qt eine eigene Sprach ist, was aber nicht korrekt ist.
Schau dir am besten einfach mal die Tutorials auf der Trolltechseite zu Qt an.
Dort findest du unter anderem ein Adressbuch Beispiel, was dir eventuell sehr hilfreich sein kann.
http://doc.trolltech.com/4.4/tutorials.html
http://doc.trolltech.com/4.4/tutorials-addressbook.htmlDas auslesen eines Textfeldes könnte wir folgt aussehen:
QLineEdit *nameLine = new QLineEdit; QString name = nameLine->text();
Mehr über den ganzen Befehlssatz erfährst du in der Api von Qt (http://doc.trolltech.com/4.4/index.html)
-
Aber dieser QString wird doch dann wieder mit Funktionen der Qstring-Library verarbeitet. Sorry, wenn ichs immer noch nich checke. Aber auch wenn Qt auf C++ aufbaut, benutze ich in "Qt-Programmen" die Funktionen von Qt und nicht die von C++??!??
-
Korrekt, du nutzt in deinen Qt Programmen die Qt Funktionen, also auch QString.
Der QString ist im prinzip nur eine Klasse die ganz normale Eigenschaften und Funktionen bereitstellt. Am Ende greift die QString Klasse nur auf die üblichen normalen C++ Funktionen zu. Dies wird natürlich durch das QString Klassenhandlich nicht mehr direkt für dich ersichtlich.
-
Also, du hast einfach ein schwerwiegendes Verständnissproblem, was bedeutet, dass du dich viel zu wenig mit C++ auskennst. Alles was du bei QT siehst sind Klassen, nichts anderes. Ich weiß jetzt nicht wie weit du beim Lernen von C++ gekommen bist, aber du solltest auf Jedenfall bis zur Objektorientierung und am besten noch Template-Programmierung gekommen sein. Dann würdest du das QT-Framework sicherlich verstehen. Des weiteren gibt es keine C++-Funktionen, lediglich Funktionen die in C++ geschrieben sind, da die Sprache von Haus aus keine mitliefert. Ausgenommen sind dort natürlich die von C geerbten Funktionen wie Printf usw. Solche Dinge wie string cout sind auch alles Klassen genau wie z.b. QString und sie alle wurde in C++ geschrieben, wurden aber nicht von der Sprache mitgeliefert. Sie mussten mithilfe der Sprache entwickelt werden.
Wie gesagt wenn du weiter C++ lernst bist du irgendwann soweit das Qt-Framework zu nutzen, aber aufgrund des fehlenden Verständnisses ist es jetzt noch nichts für dich.
-
Ok, vielen Dank soweit erstmal für die zahlreichen Antworten.
Trotzdem würde ich gerne noch eine letzte Frage loswerden, die wahrscheinlich eher ethischer Natur ist: lernt man dann nicht im Grunde zwei Sprachen? Qt und C++?
-
Definitiv Nein!
Qt ist C++, das heißt es benutzt nur Sachen die es durch C++ gibt, wie z.B. Klassen, Templates usw. Wenn du C++ kannst, kannst du auch Qt benutzen. Man muss sich vllt. kurz an das Framework gewöhnen, aber ansonsten ist es pures C++ und nichts anderes. Wie bereits gesagt, wenn du erstmal weitergekommen bist mit dem Erlernen von C++ dürfte dir das auch klar werden.
-
Alles klar!
Wenn noch jemand anders was ergänzen möchte, sehr gerne!
Ansonsten nehm ich das jetzt einfach ertsmal so hin und bedanke mich nochmal für die Antworten!