SEMI
Präsentation
Präsentation
-
- 1 / 10
-
Lernkarten
Einführung ?
Hallo und Herzlich Willkommen zu unserm Vortrag über Die Qt Grafikbibliothek und die KDE Software Compilation
Während mein Kollege Michael Fröhlich euch einen Einblick in die SchwerPunkte der Begrifflichkeiten, und der KDE Software Compilation 4 gibt, werde
Ich Tim-David Delnef mich mehr darum kümmern euch die Entwicklungsgeschichte und das Thema Qt näher zu bringen! Kommen wir nun zu unser Gliederung
Gliederung ?
Unsere Gliederung ist wie folgt aufgebaut
1) Als ersten Punkt haben wir hier ein paar Begrifflichkeiten um euch den Einstieg zu erleichtern
2) Dann erzähl ich euch etwas über die Entwicklungsgeschichte der Qt und der KDE
3) Um euch dann einen Einblick in die Qt zugeben
4) Den Abschluss macht dann mein Kollege Michael Fröhlich mit KDE Software Compilation
Entwicklungsgeschichte Qt
Beginn der Entwicklung 1991 durch Haavard Nord & Eirik Chambe-Eng und später Geschäftsführer von TrollTech.
Qt stammt daher das nach Haavard Nords empfinden das Q besonders hübsch anzusehen war in seinem damaligen Text-Editor somit cute war. Das T bedeutet so viel wie Toolkit
Sie begannen 3 Jahre vor der Gründung des Unternehmens Quasar Technologies mit der Entwicklung des Programms.
1998 Noch bevor Qt doppeltlizenziert wurde, wurde die KDE Free Qt Foundation ins Leben gerufen die verhindern sollte das Qt im Falle einer Insolvenz oder Übernahme von TrollTech unter eine restriktivere Lizenz fallen
2001 Version 3.0 ermöglichte mehreren Betriebssystemen Qt zu benutzen, Anfangs nur Unix und Windows
2008 Bezahlte Nokia 150 Mio Euro an TrollTech
Um es 2011 dem Finnischen Unternehmen Digia zu Verkaufen
Entwicklungsgeschichte KDE ?
1996 Entstehung des Projekts durch Matthias Ettrich unter dem Namen Kool Desktop Environment der sich an der damals vorhandenen BenutzerOberfläche CDE von Unix orientierte sie an der Programmiersprache C++ und der OberflächenBibliothek Qt. Die Idee dahinter stand mit KDE eine freie Verfügbare BenutzerOberfläche zu erschaffen die der CDE unter Unix ähnelt. Die CDE von Unix gab es damals eben nur in eingeschränkter Version.
1998 kam die Finale Version von KDE1.0 heraus die viel Kritik einstecken musste aufgrund der Verwendung von der damals noch unfreien OberflächenBibliothek Qt. Bedingt durch den Druck der auf TrollTech ausgeübt wurde entschied sich Qt im Jahre 1999 eine speziellere freierer Version von Qt auf den Markt zu bringen.
2000 folgte dann der finale Durchbruch mit der Version 2.0
2002 kam Version 3.0 raus
2008 kam die KDE Software Compilation 4 unter dem Namen Krash raus die jetzt auch direkt unter Windows und MacOs verwendbar war
2009 entgültige Namensänderung in KDE und Matthias Ettrich wurde mit dem Bundesverdienstkreuz geehrt.
Sie kennen schon Qt !!!
Qt ist eine C++ Klassenbibliothek mit dem Hauptverwendungszweck Graphische BenutzerOberflächen für unterschiedliche Betriebssysteme zu entwerfen ohne jedes mal den Code neu schreiben
Da haben wir zum einen
Adobe Photoshop Elements
VlC Media Player
Musikstreaming Software Spotify allerdings nur unter Linux
Skype zum Beispiel aber auch nur unter Linux
Das Rennspiel Need for Speed The Run
Oder auch z.B Google Earth
Qt Creator ?
Hier haben wir nun das Program Qt Creator in diesem lässt es sich über den Editor ganz normal im C++ format programmieren oder auch über den Qdesigner gerade das äußerliche sehr einfach bearbeiten was ich euch später noch zeigen werden schauen wir uns die einzelnen Modien mal an.
Hier seht ihr nun ein Ausschnitt der Qt- Klassen auf die ich jetzt nicht weiter eingehen werde da es doch zu Umfangreich ist mit über 1100 Klassen aber auf die Widgets z.B die zur Graphical User Interface dienen werd ich noch etwas vertiefen
Kommen wir nun also zu den Widgets
Qt Widgets
Zu den wichtigsten Widgets gehören die
Buttons InputWidgets DisplayWidgets Layout Space die ich anhand dieser Folien erklärt habe
Buttons sind SteuerElemente die auf Klicks Reagieren
InputWidgets dienen der Dateieingabe
DisplayWidgets Zeigen Informationen an
Layouts Dienen der Anordnung von Widgets sind selbst aber keine Widgets
Spacers Leisten Hilfe bei der Anordnung von Widgets und fügen zustätzliche Abstände ein
Hello World Programm
Nehmen wir uns nun das Beispiel des Hello World Programms vor hier seht ihr ein Auszug des ProgrammCodes aus dem QtCreator
Die QApplication stellt die Basis dar der QPushButton hello erzeugt einen Button mit der Beschriftung Hello World
Hello.Resize gibt die Größe des Buttons Hello an
Hello.show wird zum Button darfstellen benötigt return app.exec gibt die Kontrolle an QApplication ab
Schauen wir uns also an was wir also erstellt haben einen Button mit der Schaltfläche Hello World aber was geschieht dabei genau wenn wir den Button klicken
Anscheinenend nichts aber Tatsächlich bemerkt die Klasse QPUSHBUTTON die Aktion, wurde aber nicht Instruiert also es wurde Kein Befehl hinterlegt der ausgeführ werden soll, Nun gibt es die Möglichkeit über das sogenannte Signal Slot Verfahren das zu ändern aber was genau passiert da
Wir sagen Wer Soll Senden und das soll unser Button sein und bei welcher Aktion soll er was Senden wenn wir Ihn Klicken
Wer soll etwas empfängen z.B das Fenster und was für eine Aktion soll dann ausgeführt werden es soll geschlossen werden.
Also was ist jetzt genau das Signal & Slot verfahren
Mechanismus um Nachrichten zwischen Objekten auszutauschen
Signals verschicken Nachrichten
Slots empfangen Nachrichten
Eine Signal/Slot Verbindung wird mit QObject::connect() hergestellt
Sie kann jederzeit hergestellt werden
Wird ein Objekt zerstört wird seine Signale/Slots Verbindung automatisch auch gelöscht
Fehler werden erst in Laufzeit erkannt
Vorteile ?
Vorteile
Sehr Mächtig & trotzdem einfach zu bedienen
Lässt sich auf vielen Plattformen einsetzen
Steht unter Dualem Lizensystem
Strukturierte Dokumentation
Eine der umfangreichsten Entwicklungsumgebungen
Qt Framework codiert Zeichen durchgängig in UTF-16
Internationalisierung
Nachteile ?
Nachteile
Für Qt Programme werden Qt- Bibliotheken benötigt
Verglichen mit andern Frameworks erzeugt das relativ große Programme
Dokumentation nicht so umfangreich