QT-Verständnis! Sprache oder Erweiterung?
Hallo, nachdem ich begonnen habe mich mit QT-Programmierung zu beschäftigen ssind nun einige Fragen aufgekommen: Ist QT jetzt eigentlich eine eigene Sprace oder nur eine Erweiterung für C oder C++? Ich dache immer, dass es auf c++ aufbaut und man somit auch die header von c++ verwenden kann. Ich kann aber z.B. nicht string.h verwenden. Der Header wird zwar erkannt, ich kann aber keine solchen Variablen deklarieren. Bitte verschafft mir mal ein wenig mehr Durchblick. Danke Holger -- Holger Macht - 91247 Vorra-Artelshofen mailto:holger.macht@web.de - http://www.sgt-hulder.de Homepage: Tabulaturarchiv, Vokabelprogramm, Tools
On Donnerstag, 6. März 2003 11:28, Holger Macht wrote:
Ist QT jetzt eigentlich eine eigene Sprace oder nur eine Erweiterung für C oder C++? Ich dache immer, dass es auf c++ aufbaut und man somit auch die header von c++ verwenden kann. Ich kann aber z.B. nicht string.h verwenden. Der Header wird zwar erkannt, ich kann aber keine solchen Variablen deklarieren. Bitte verschafft mir mal ein wenig mehr Durchblick.
Qt ist eine Klassenbibliothek für C++. Zusätzlich gibt es auch "moc", den
Präprozessor von Qt, der die Qt-Signale implementiert und für den
Anwendungsprogrammierer C++ ein bißchen erweitert um "emit" (um ein Signal zu
senden) und "signals" und "slots" bei der Klassendefinition.
Mit STL-Strings bist Du wahrscheinlich über den jetzt strengeren GCC (g++)
gestolpert.
Anstatt früher
#include
Am Don, 2003-03-06 um 11.45 schrieb Stefan Hundhammer:
...aber wenn Du QString kennengelernt hast, willst Du diese völlig praxisfremden STL-Strings wahrscheinlich sowieso nicht mehr verwenden. Wie bitte? Das kann man so nicht stehen lassen.
QStrings mögen Deiner Meinung nach den STL-strings überlegen sein, sind ausserhalb der QT-Welt aber ebenso völlig irrelevant und ebenso proprietär, wie es die libg++-Strings und irgendwelche Borland oder M$-String Implementierungen sind. Ralf
On Donnerstag, 6. März 2003 12:11, Ralf Corsepius wrote:
...aber wenn Du QString kennengelernt hast, willst Du diese völlig praxisfremden STL-Strings wahrscheinlich sowieso nicht mehr verwenden.
Wie bitte? Das kann man so nicht stehen lassen.
QStrings mögen Deiner Meinung nach den STL-strings überlegen sein, sind ausserhalb der QT-Welt aber ebenso völlig irrelevant und ebenso proprietär, wie es die libg++-Strings und irgendwelche Borland oder M$-String Implementierungen sind.
Völlig richtig - wenn man nicht Qt programmiert, sind QStrings irrelevant.
Proprietär sind sie sowieso.
Aber ich würde inzwischen ernsthaft in Erwägung ziehen, auch für
nicht-GUI-Projekte Qt zu verwenden, einfach um die vielen sehr gut designten
Nicht-GUI-Klassen von Qt verwenden zu können, z.B. QString, QRegExp, QFile,
QDir, nicht zu vergessen die ganzen Qt-Container.
In inzwischen dreieinhalb Jahren Praxiserfahrung mit YaST2-UI-Entwicklung habe
ich STL-Strings mit Inbrunst hassen gelernt. Man muß dazu wissen, daß die
YaST2-UI eine abstrakte Zwischenschicht hat, die STL-Strings verwendet -
schon damit die NCurses-UI auch Strings hat - und die Qt-UI, die schon für
Qt-Zwecke QString verwendet - ich kenne also beide Welten recht gut.
STL-Strings kommen aus dem Elfenbeinturm der Informatiktheorie.
Basisfunktionalität, die man täglich braucht, ist schlicht nicht vorhanden.
Zum Beispiel gibt es kein sprintf() in einen STL-String. Für GENAU SO ETWAS
brauche ich verdammt noch mal eine leistungsfähige String-Klasse - es nützt
mir nichts, wenn ich dazu wieder einen statischen Puffer der Länge, sagen wir
mal 256 (oder 1024? oder 8192? oder was?) anlegen muß, der irgendwann ja doch
überläuft (Security-Probleme!), aber in aller Regel viel zu groß ist.
Suchfunktionen sind dürftig, reguläre Ausdrücke nicht vorhanden.
Konvertierungsfunktionen zwischen verschiedenen Codierungen gibt es nicht -
selber schreiben.
...und so weiter, und so fort.
Das alles ist bei QString einfach dabei - eben an die Praxis angepaßt.
CU
--
Stefan Hundhammer
participants (3)
-
Holger Macht
-
Ralf Corsepius
-
Stefan Hundhammer