Fortgeschrittene Kapitel: Grafische Ausgabe mit C++ Karl Gmeiner
|
|
- Magdalena Hummel
- vor 6 Jahren
- Abrufe
Transkript
1 Fortgeschrittene Kapitel: Grafische Ausgabe mit C++ Karl Gmeiner 2015
2 1 Software-Frameworks am Beispiel von Qt 1.1 Software-Frameworks Software-Frameworks stellen Datenstrukturen, Algorithmen, Entwurfsmuster etc... Verfügung, aus denen vollwertige Applikationen erstellt werden können. Für C/C++ gibt es viele (freie) Software-Frameworks GTK Qt... zur 1.2 Qt ( cute ) Vor mehr als 20 Jahren entwickelt Plattformübergreifend (Windows, Linux, MacOSX, mobile Plattformen... ) Kommerzielle und freie Lizenzen Basis von KDE und vielen plattformübergreifenden Applikationen Linux-Versionen von Spotify, Skype und VLC GUI von VirtualBox VLC Google Earth Unterstützung für XML, SQL, Webkit (kommt aus Qt/KDE), Netzwerk etc... Viele Sprach-Bindings 1.3 Entwicklungstools für Qt MOC Qt erweitert C++, daher werden Qt-Programme immer zuerst mit dem Meta-Object Compiler compiliert (moc). Daher teilweise erweiterte C++-Syntax (z.b. zusätzlich signals und slots in Klassendefinition) QtCreator Als Bundle mit Qt erhältlich IDE für C++ Guter Support für Qt-Programme Enthält Designer Erzeugt Project-File (Endung.pro) * TEMPLATE: Typ des Projekts * TARGET: Name der Anwendung * QT: verwendete Qt-Komponenten *... 1
3 1.4 Erste Anwendung (Empty QMake-Project) pro-datei TEMPLATE = app TARGET = MyQtProject CONFIG += c++11 QT = core gui widgets SOURCES += myfirstapp.cpp 1.5 Erste Anwendung MyFirstApp.cpp #include <QApplication> int main(int argc, char **argv) { QApplication app (argc, argv); return app.exec(); QApplication Erzeugt eigenen Thread, in dem Events behandelt werden GUI-Events wie z.b. Button wurde geklickt Einzelner Thread um Race-Conditions zu vermeiden 1.6 Ein erstes GUI-Element: QPushButton #include <QApplication> #include <QPushButton> int main(int argc, char **argv) { QApplication app (argc, argv); QPushButton button("click me!"); button.settooltip("do it."); button.show(); return app.exec(); Dokumentation zu Qt zeigt saemtliche Eigenschaften, die geaendert werden koennen. 1.7 Ein zweites GUI-Element: QLabel QLabel label("0", &button); label.show(); 2
4 Label ist nun innerhalb des Buttons Alle GUI-Elemente leiten sich von QWidget ab Dadurch viel gemeinsame Funktionalitaet, u.a, koennen GUI-Elemente allen GUI- Elementen hinzugefuegt werden. 1.8 Label und Button nebeneinander int main(int argc, char**argv) { QApplication app(argc, argv); QWidget widget; widget.setfixedsize(200, 160); QPushButton button("clickme", &widget); button.setgeometry(10, 10, 190, 70); QLabel label("0", &widget); label.setgeometry(10, 80, 190, 150); label.setalignment(qt::aligncenter); widget.show(); return app.exec(); 1.9 Kommunikation zwischen Objekten Observer-Pattern Design-Pattern Frameworks wie Qt haben einen Mechanismus um Benutzereingaben zu erfassen und darauf zu reagieren Observer-Pattern: Objekte enthalten eine Aufzaehlung anderer Objekte und informieren sie ueber Ereignisse Bsp: Klick auf Button soll eine Funktion aufrufen, die den Text eines Labels aendert. In Java ueber Listener (es gibt einen Observer und einen Observee ) In Qt als High-Level-Mechanismus ueber Signals/Slots * Erfordert MOC 1.10 Signals und Slots Objekte koennen Signale ausloesen (emit). Objekte enthalten Slots. Diese koennen mit Signalen gleicher Signatur verbunden werden. QPushButton enthaelt Signal clicked() (wird emmited bei Click auf Button) QLabel enthaelt Slot clear() (loescht den Text). Verbinden mit connect (liefert in Qt5 eine Instanz von Connection ), Aufloesen mit disconnect (in Qt5 return-wert). 3
5 1.11 Signals und Slots Syntax in Qt4 und Qt5 // Qt 4 und davor QObject::connect(&button, SIGNAL(clicked()), &label, SLOT(clear())); Alte Syntax auch in Qt5 unterstuetzt Qt5 erlaubt neue Syntax um auch Lambda-Terme zu erlauben. Siehe Qt-Wiki // Neue Syntax in Qt5 QObject::connect(&button, &QPushButton::clicked, &label, &QLabel::clear); // Neue Syntax in Qt5 erlaubt Lambda-Expressions QObject::connect(&button, &QPushButton::clicked, [&label](){ label.settext("1"); ); 1.12 Mitzaehlen, wie oft geclickt wird Lambda-Term als Slot Zaehlvariable wird als Referenz uebergeben und bei jedem Clicked-Signal erhoeht. int counter = 0; QObject::connect(&button, &QPushButton::clicked, [&counter, &label](){ label.settext(qstring::number(++counter)); ); 1.13 QObject Objekte in Qt leiten sich von QObject ab QObjects haben ein Eltern-QObject Wird Eltern-Objekt geloescht, werden auch die Kind-Objekte geloescht (vergleichbar mit Smart Pointern) Q_OBJECT-Makro wichtig fuer MOC #include <QObject> class MyCounter : public QObject { Q_OBJECT public: MyCounter(QObject* parent = 0);... private: int i; ; 4
6 1.14 Signals und Slots in MyCounter MyCounter soll einen Slot increment enthalten Erhoeht Zaehler Emittiert ein Signal mit einer Zeichenkette, die die Zahl enthaelt * In Qt QString (kann analog zu std::string verwendet werden) Wird der Counter erhoeht, soll ein Signal updated(const QString& s) emittiert werden, das eine Zeichenkette mit der Zahl enthaelt. In Qt QString (erlaubt Unicode, sonst weitgehend gleich wie std::string)... public slots: void increment(); signals: void updated(const QString& s); Implementierung von MyCounter #include "mycounter.h" MyCounter::MyCounter(QObject* parent): QObject(parent), i(0) { void MyCounter::increment() { i++; // create string from number // and send it with the signal emit updated(qstring::number(i)); 1.16 Verbinden der Signale und Slots MyCounter c; QObject::connect(&button, SIGNAL(clicked()), &c, SLOT(increment())); QObject::connect(&c, SIGNAL(updated(QString)), &label, SLOT(setText(QString))); Vorteil: Beliebig viele weitere Verbindungen Signals/Slots Connections werden automatisch aufgeloest, wenn QObject geloescht wird 2 QWidget-Application erstellen 2.1 Ein Programm in einem Fenster Neue Widget-Application 5
7 #include <QApplication> #include <QMainWindow> int main(int argc, char *argv[]) { QApplication a(argc, argv); QMainWindow w(&a); w.show(); return a.exec(); Durch Erweitern von QMainWindow koennen komplexere GUI-Anwendungen erstellt werden. 2.2 Erstellen eines Programms mit GUI in Qt siehe auch Qt-Doc Qt Widgets Application erstellen Base class * QMainWindow: Fenster-Applikation * QWidget: Keine Applikation, sondern ein grafisches Bedienelement (z.b. Color Picker) * QDialog: Dialog-Fenster Source Code fuer bereits lauffaehige Anwendung wird erstellt UI-Editor UI als XML-File Neue GUI-Elemente koennen einfach erstellt werden und Signals und Slots damit verbunden werden. 2.3 Wichtige Klassen QApplication Startet die Anwendung. Das GUI wird zuvor angelegt. QMainWindow Fenster der Anwendung Modale Fenster: Fenster, die nicht unabhaengig von anderen Fenstern existieren (z.b. Datei oeffnen -Dialog) QWidget Basis-Klasse aller GUI-Elemente (z.b. QPushButton, QTextEdit, QLabel, QGraphicsView... ) Layouts: Geben an, wie die GUI-Elemente angeordnet werden 2.4 Ein Widget mit einer Linie Neue C++-Klasse erstellen und QWidget erweitern. Ueberschreiben von void paintevent(qpaintevent *) Promote centralwidget. 6
8 void MyWidget::paintEvent(QPaintEvent *) { double w = width(), h = height(); QPen pen; pen.setwidth(1); QPainter painter(this); for(double d = 0; d <= 1; d += 0.01) { pen.setcolor(qcolor::fromhsvf(d, 1, 1)); painter.setpen(pen); painter.drawline(d * w, 0, 0, h - d * h); painter.drawline(w - d * w, h, w, d * h); 2.5 Eine analoge Uhr Linien fuer Sekundenzeiger, Minutenzeiger und Stundenzeiger. Zur Vereinfachung eigene Methode zum Zeichnen eines Zeigers void ClockWidget::drawDigit(const QPen& pen, double arc, double scale) { QPainter painter(this); painter.setpen(pen); double cx = width() / 2., cy = height() / 2.; painter.setpen(pen); painter.drawline(cx, cy, cx + scale * width() * sin(arc) / 2., cy - scale * height() * cos(arc) / 2.); 2.6 Zugehoerige paintevent-methode void ClockWidget::paintEvent(QPaintEvent *) { QPen secpen(qt::red); secpen.setwidth(1); QPen minpen(qt::blue); minpen.setwidth(2); QPen hourpen(qt::black); hourpen.setwidth(4); QTime time = QTime::currentTime(); double secarc = time.second() * 2 * M_PI / 60., minarc = time.minute() * 2 * M_PI / 60., hourarc = time.hour() * 2 * M_PI / 12.; drawdigit(secpen, secarc, 1); drawdigit(minpen, minarc, 0.8); drawdigit(hourpen, hourarc, 0.5); 2.7 Wann wird das Widget neu gezeichnet? QWidget enthaelt einen Slot update(), der ein neues Zeichnen in der Event-Loop anordnet 7
9 Wird beispielsweise bei Veraendern der Groesse aufgerufen QTimer kann regelmaessig das Widget dazu auffordern, seinen Inhalt neu zu zeichnen QTimer: Methode start(int ms) emittiert alle ms Millisekunden ein timeout()-signal Durch Verbinden des Signals mit update() kann regelmaessig neu gezeichnet werden. Da es mehrere update()-slots gibt brauchen wir einen entsprechenden Cast. 2.8 ctor von ClockWidget ClockWidget::ClockWidget(QWidget *parent) : QWidget(parent) { QTimer* timer = new QTimer(this); connect(timer, &QTimer::timeout, this, (void (QWidget::*)()) (&QWidget::update)); timer->start(1000); timer wird geloescht wenn ClockWidget geloescht wird, da this das Eltern-Objekt ist. 3 Danke fuers Zuhoeren 8
Was ist QT? Beispiele: KDE Google Earth Mathematika
Einführung in QT Was ist QT? QT ist eine Klassenbibliothek für plattformübergreifende Programmierung graphischer Benutzeroberflächen QT ist für verschiedene Graphikplattformen wie X11 (Unix), Windows,
MehrGUI Programmierung mit Qt
GUI Programmierung mit Qt C++ vs. JAVA Norman Wolf 22.04.05 GUI Programmierung mit Qt 1 Einleitung Qt wird von der norwegischen Firma Trolltech entwickelt Es ist kommerzielle Software, die aber von Trolltech
MehrInteraktive Simulationen Lektion 1/3: Event-Driven Design und Signals
MÜNSTER Interaktive Simulationen Lektion 1/3: Event-Driven Design und Signals Prof. Dr. Christian Engwer & Andreas Buhr 16. April 2014 MÜNSTER Interaktive Simulationen 2 /22 Normales C++ Programm Programmstruktur
MehrWorkshop: Entwickeln mit Qt 4. Daniel Molkentin <molkentin@kde.org>
Workshop: Entwickeln mit Qt 4 Daniel Molkentin Das Wichtigste zuerst! Haben Sie einen Laptop dabei? Nein? Suchen Sie sich schnell einen netten Nachbarn :) Haben Sie Qt installiert?
MehrQt Programmierung Teil 1 Fenster erstellen by NBBN (http://nbbn.wordpress.com) CrashKurs-Artig. Was brauche ich? -Einige C++ Kenntnisse
Qt Programmierung Teil 1 Fenster erstellen by NBBN (http://nbbn.wordpress.com) CrashKurs-Artig. Was brauche ich? -Einige C++ Kenntnisse Wie man in C++ mit Hilfe von Qt GUI-Anwendungen programmieren kann.
MehrGrundlagen der Informatik Entwicklung von Anwendungen mit dem Qt-Framework
Grundlagen der Informatik Entwicklung von Anwendungen mit dem Qt-Framework Prof. Dr.-Ing. habil. Peter Sobe Prof. Dr.-Ing. Thomas Wiedemann Fachgebiet Informatik / Mathematik Qt Benutzerschnittstellen
MehrEinführung in die Programmierung mit Qt
Einführung in die Programmierung mit Qt Dr. Ralf Schüler 5.11.2009 Was ist Qt? sprich: [kju:t] Klassenbibliothek für C++ (ferner Java, Python u.a.) sehr umfangreich: GUI, Stringverarbeitung, reguläre Ausdrücke,
MehrWorkshop: Entwickeln mit Qt 4. Daniel Molkentin <molkentin@kde.org>
Workshop: Entwickeln mit Qt 4 Daniel Molkentin Das Wichtigste zuerst! Haben Sie einen Laptop dabei? Nein? Suchen Sie sich schnell einen netten Nachbarn :) Haben Sie Qt installiert?
MehrEinführung in die Programmierung Wintersemester 2011/12
Einführung in die Programmierung Wintersemester 2011/12 Prof. Dr. Günter Rudolph Lehrstuhl für Algorithm Engineering Fakultät für Informatik TU Dortmund : GUI-Programmierung Inhalt Was ist eine GUI? Was
Mehr5. Programmierung von Benutzerschnittstellen
5. Programmierung von Benutzerschnittstellen Inhalt: Rolle des Betriebssystems Win32 Programmierung mit Fenstern und Grafikausgabe Objektorientierte Programmierung von Benutzerschnittstellen mit Qt weitere
MehrEinführung in die Programmierung
: Inhalt Einführung in die Programmierung Wintersemester 2009/10 Prof. Dr. Günter Rudolph Lehrstuhl für Algorithm Engineering Fakultät für Informatik TU Dortmund Was ist eine GUI? Was ist QT? Erste Schritte:
MehrPraktikum IKT 3. Semester
Praktikum IKT 3. Semester Dr. Andreas Müller, TU Chemnitz, Fakultät für Informatik Inhaltsverzeichnis 1 1 Einführung in QT 1.1 Die QT-Bibliothek Informationen: http://www.trolltech.com Lehner, B: KDE-
MehrObjektorientierte Programmierung mit C++ (WS 2010)
Objektorientierte Programmierung mit C++ (WS 2010) Dr. Andreas F. Borchert, Tobias Brosch Institut für Angewandte Informationsverarbeitung Universität Ulm Blatt 11: Abgabetermin 19. Januar 2011 11 Uhr
MehrNun haben wir alle Programmierwerkzeuge zusammen und können das Gelernte in einer Synthese-Übung vereinigen.
Kapitel 10 Synthese-Übung Nun haben wir alle Programmierwerkzeuge zusammen und können das Gelernte in einer Synthese-Übung vereinigen. main() Funktion Instanzen von Klassen anlegen Dateien lesen und schreiben
Mehr5. Programmierung von Benutzerschnittstellen mit Qt
5. Programmierung von Benutzerschnittstellen mit Qt Eine kurzer Überblick zur objektorientierten Programmierung von Benutzerschnittstellen mittels C++ und Qt. Alternativen zur Realisierung von Benutzerschnittstellen:
Mehr5. Programmierung von Benutzerschnittstellen mit Qt
5. Programmierung von Benutzerschnittstellen mit Qt Eine kurzer Überblick zur objektorientierten Programmierung von Benutzerschnittstellen mittels C++ und Qt. Alternativen zur Realisierung von Benutzerschnittstellen:
MehrPraxisorientierte Einführung in C++ Lektion: "Einführung in das GUI-Toolkit Qt"
Praxisorientierte Einführung in C++ Lektion: "Einführung in das GUI-Toolkit Qt" Christof Elbrechter Neuroinformatics Group, CITEC April 24, 2014 Christof Elbrechter Praxisorientierte Einführung in C++
Mehrd:\c++\semesterarbeit\lottosix\lottosix.cpp /* ======================================================================== Dateiname: lottosix.
/* ======================================================================== Dateiname: lottosix.cpp 1 Zweck: Semesterarbeit ============== Erstellt ein QWidget in welchem Lottozahlen gezogen und verglichen
MehrInteraktive Simulationen Lektion 3/3: Grafische Ausgabe
MÜNSTER Interaktive Simulationen Lektion 3/3: Grafische Ausgabe Prof. Dr. Christian Engwer & Andreas Buhr 30. April 2014 Was ist ein Widget? MÜNSTER Interaktive Simulationen 2 /24 Ein QWidget ist ein QObject
MehrPraxisorientierte Einführung in C++ Lektion: Einführung in das GUI-Toolkit Qt
Praxisorientierte Einführung in C++ Lektion: Einführung in das GUI-Toolkit Qt Christof Elbrechter, Florian P. Schmidt Neuroinformatics Group, CITEC April 5, 2011 Christof Elbrechter Praxisorientierte Einführung
MehrGUI Programmierung mit Qt
GUI Programmierung mit Qt C++ vs. JAVA Ausarbeitung für einen Vortrag im Oberseminar Softwareentwicklung an der HTWK Leipzig Vortragender: Norman Wolf Einleitung Qt wird von der norwegischen Firma Trolltech
MehrÜbersicht GUI PyQT TU Dresden, 23.05.2011 Sommerkurs Python - 05. GUI Folie 1 von XYZ
Übersicht GUI PyQT Folie 1 von XYZ Graphical User Interface GUI Folie 2 von XYZ GUI - Graphical User Interface Ø Wikipedia sagt: Eine grafische Benutzeroberfläche ist eine Software-Komponente, die dem
MehrEinführung in die Programmierung Wintersemester 2009/10
Einführung in die Programmierung Wintersemester 2009/10 Prof. Dr. Günter Rudolph Lehrstuhl für Algorithm Engineering Fakultät für Informatik TU Dortmund : GUI-Programmierung Inhalt Was ist eine GUI? Was
MehrQt ist ein plattformübergreifendes Entwicklungs-Framework, geschrieben in C++ Framework für C++, Bindings für andere Programmiersprachen
Was ist Qt? Qt ist ein plattformübergreifendes Entwicklungs-Framework, geschrieben in C++ Framework für C++, Bindings für andere Programmiersprachen Python, Ruby, C#... Ursprünglich für grafische Benutzeroberflächen
MehrEinführung in die Programmierung GUI Programmierung Teil 3
Einführung in die Programmierung GUI Programmierung Teil 3 30.01.2014 Jan Quadflieg & Andreas Thom Technische Universität Dortmund Lehrstuhl 11 - Algorithm Engineering Jan Quadflieg & Andreas Thom Einführung
MehrEinführung in die Programmierung Wintersemester 2010/11
Einführung in die Programmierung Wintersemester 2010/11 Prof. Dr. Günter Rudolph Lehrstuhl für Algorithm Engineering Fakultät für Informatik TU Dortmund : GUI-Programmierung Inhalt Was ist eine GUI? Was
MehrAufgabe 1: GUIs mit PyQt
Michael Wand Institut für Informatik. Angewandte Mathematik am Rechner 1 SOMMERSEMESTER 2017 18. April 2017 Aufgabe 1: GUIs mit PyQt Erste Praktikumsaufgabe Aufgabenblatt Aufgabe 1 Jetzt online (Webseite
MehrEinführung in Qt. Im Rahmen der Vorlesung Objektorientierte Softwareentwicklung mit C++ (WS 2002/2003)
Einführung in Qt Im Rahmen der Vorlesung Objektorientierte Softwareentwicklung mit C++ (WS 2002/2003) Inhaltsangabe 1. Was ist Qt?... 3 2. Der Ursprung von Qt... 4 3. Eigenschaften von Qt... 6 4. Konzept
MehrMotivation. Einführung in die Programmierung GUI Programmierung Teil 3. Problemstellungen. Problemstellungen
Einführung in die Programmierung GUI Programmierung Teil 3 30.01.2014 Motivation Motivation II Motivation I Jan Quadflieg & Andreas Thom SDSS and LSST telescopes Images and and Spectra Technische Universität
MehrQt Framework. Thomas Keller - itcampus GmbH 14.08.2008. Creative Commons Namensnennung-Keine kommerzielle Nutzung 2.0 Deutschland Lizenz
Qt Framework Thomas Keller - itcampus GmbH 14.08.2008 Creative Commons Namensnennung-Keine kommerzielle Nutzung 2.0 Deutschland Lizenz 1 Überblick 2 Die Themen Was ist Qt? Anwendungen Module Was macht
MehrGUI Programmierung mit GTK
LinuxFocus article number 295 http://linuxfocus.org GUI Programmierung mit GTK by Özcan Güngör About the author: Ich benutze Linux seit 1997. Freiheit, Flexibilität, Open
MehrLehrstuhl für Datenverarbeitung. Technische Universität München. Grundkurs C++ Buildsysteme
Grundkurs C++ Buildsysteme Buildsysteme Beispielhaftes Übersetzungsszenario: Verzeichnis tutorial7/ main.cpp, lcdrange.cpp, lcdrange.h *.cpp Kompilieren *.o *.h Grundkurs C++ 2 Headerdateien //blackbox.h
MehrC++, STL und Qt. C++, STL und Qt. Dipl.Ing. Christoph Stockmayer, Schwaig, sto@stockmayer.de
C++, STL und Qt Objektorientiertes Programmieren mit C++, Benutzen der STL-Standard-Bibliothek und graphisches User-Interface Qt Dipl.Ing. Christoph Stockmayer, Schwaig, sto@stockmayer.de 1. Einleitung
MehrGrundkurs C++ Buildsysteme Versionsverwaltung mit git
Grundkurs C++ Buildsysteme Versionsverwaltung mit git Martin Knopp, Martin Gottwald, Stefan Röhrl 25.04.2018 Folie 1/21 GK C++: Buildsysteme, Versionsverwaltung Martin Knopp, Martin Gottwald, Stefan Röhrl
MehrGrundkurs C++ Buildsysteme Versionsverwaltung mit git
Grundkurs C++ Buildsysteme Versionsverwaltung mit git Martin Knopp 09.05.2017 Folie 1/1 GK C++: Buildsysteme, Versionsverwaltung Martin Knopp 09.05.2017 Buildsysteme Beispielhaftes Übersetzungsszenario:
MehrGrundkurs C++ Buildsysteme Versionsverwaltung mit git
Grundkurs C++ Buildsysteme Versionsverwaltung mit git Martin Knopp & Johannes Feldmaier 20.04.2016 Folie 1/22 GK C++: Buildsysteme, Versionsverwaltung Martin Knopp & Johannes Feldmaier 20.04.2016 Buildsysteme
MehrK Desktop Environment
K Desktop Environment Anwendung und Programmierung Tobias Koenig Max-Planck Administratoren Treffen 2005 p. 1 Übersicht Einführung Anwendung Benutzerrestriktionen mit KIOSK Groupware mit Kontact Programmierung
MehrC++GUI Programmierung mit Qt 4
Jasmin Blanchette MarkSummerfield C++GUI Programmierung mit Qt 4 Die offizielle Einführung mit einem Vorwort von Matthias Ettrich ADDISON-WESLEY An imprint of Pearson Education München Boston San Francisco
MehrInhalt. Teil I: Qt für Einsteiger... 27. Über die Autoren... 11. Vorwort... 13. Einleitung... 17. Danksagungen... 21
Über die Autoren............................................................................. 11 Vorwort........................................................................................ 13 Einleitung.....................................................................................
MehrEinführung in die GUI- Programmierung mit Qt 4. von Yannick Müller Erstbetreuer: Prof. Dr. rer. nat. Gerhard Dikta Zweitbetreuer: Uli Schmidt
Einführung in die GUI- Programmierung mit Qt 4 von Yannick Müller Erstbetreuer: Prof. Dr. rer. nat. Gerhard Dikta Zweitbetreuer: Uli Schmidt Gliederung Das Framework Qt Signale und Slots GUI Ereignisverarbeitung
MehrMultimedia im Netz Wintersemester 2012/13
Multimedia im Netz Wintersemester 2012/13 Übung 10 Ludwig-Maximilians-Universität München Multimedia im Netz WS 2012/13 - Übung 10-1 Lösung zu Übungsblatt 08 Ludwig-Maximilians-Universität München Multimedia
MehrSommersemester Implementierung III: GUI und Verhalten (Teil 2)
Sommersemester 2003 Implementierung III: GUI und Verhalten (Teil 2) 26 Aufgabe 5 Implementierung III: GUI und Verhalten (Teil 2) Umfang: 1 Woche Punkte: 50 P. Als Nächstes soll die Implementierung des
MehrAbteilung Bild- und Signalverarbeitung Prof. Dr. Gerik Scheuermann. Tutorial - CGViewer
Universität Leipzig Sommersemester 2007 Institut für Informatik Computergrafik-Vorlesung Abteilung Bild- und Signalverarbeitung Betreuer: Heike Jänicke Prof. Dr. Gerik Scheuermann Tutorial - CGViewer 1
Mehr1 Einstieg in Qt... 15. 2 Signale und Slots... 27. 3 Basisklassen und Bibliotheken von Qt... 55. 4 Dialoge, Layout und Qt-Widgets...
Auf einen Blick 1 Einstieg in Qt... 15 2 Signale und Slots... 27 3 Basisklassen und Bibliotheken von Qt... 55 4 Dialoge, Layout und Qt-Widgets... 67 5 Qt-Hauptfenster... 317 6 Ein-/Ausgabe von Daten...
MehrFunktionale und Objekt-Orientierte Programmierkonzepte
Funktionale und Objekt-Orientierte Programmierkonzepte Prof. Marc Fischlin, Wintersemester 15/16 Kapitel 17: GUI, Threads und verschachtelte Klassen 13. Oktober 2010 Dr.Marc Fischlin Kryptosicherheit 1
MehrWindows Presentation Foundation (WPF) -Grundlagen -Steuerelemente. Dr. Beatrice Amrhein
Windows Presentation Foundation (WPF) -Grundlagen -Steuerelemente Dr. Beatrice Amrhein Überblick Die Architektur WPF Projekt erstellen Steuerelemente einfügen Eigenschaften von Steuerelementen ändern Nach
MehrJava Einführung Methoden in Klassen
Java Einführung Methoden in Klassen Lehrziel der Einheit Methoden Signatur (=Deklaration) einer Methode Zugriff/Sichtbarkeit Rückgabewerte Parameter Aufruf von Methoden (Nachrichten) Information Hiding
MehrQt für C++-Anfänger. de.wikibooks.org
Qt für C++-Anfänger de.wikibooks.org 15. Mai 2016 On the 28th of April 2012 the contents of the English as well as German Wikibooks and Wikipedia projects were licensed under Creative Commons Attribution-ShareAlike
MehrEinstieg in die Informatik mit Java
1 / 27 Einstieg in die Informatik mit Java Klassen als Datenstrukturen Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 27 1 Überblick: Klassen als Datenstruktur 2 Vereinbarung
Mehr2 Signale und Slots. Widgets
Wer sich schon mit der GUI-Programmierung befasst hat, wird bei dieser Überschrift an sogenannte Callback-Funktionen denken. Doch Qt geht hier einen anderen Weg und verwendet ein Signal-Slot-Konzept. Wie
MehrEinstieg in die Informatik mit Java
1 / 34 Einstieg in die Informatik mit Java Klassen mit Instanzmethoden Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 34 1 Definition von Klassen 2 Methoden 3 Methoden
MehrJasmin Blanchette, Mark Summerfield
Jasmin Blanchette, Mark Summerfield Die offizielle Einführung 2., aktualisierte Auflage r,. t~. VV ADDISON-WESLEY An imprint of Pearson Education München Boston San Francisco Harlow, England Don Mills,
MehrArbeitsblatt 5 EAD II NetBeans
Arbeitsblatt 5 EAD II NetBeans Graphische Oberfläche für Uhrenanzeige mit NetBeans Für die Einführung in die Verwendung von NetBeans erstellen wir die graphische Oberfläche für die Uhr nun mit NetBeans.
Mehr(1)Einführung in Eclipse
Auf diesem ersten Arbeitsblatt werdet ihr die Programmierumgebung Eclipse kennenlernen, die eure Oberfläche zum Bearbeiten des Android-Projekts Schiffe versenken sein wird. Dabei macht ihr euch einen Überblick
MehrInstitut für Programmierung und Reaktive Systeme. GUIs mit Swing. Markus Reschke
GUIs mit Swing Markus Reschke 28.08.2014 Beispiel: Ein einfaches GUI-Programm Siehe Painter.java Markus Reschke GUIs mit Swing 2 GUI Frameworks in Java AWT war das erste GUI-Framework, welches mit Java
Mehrcross-platform application and UI framework
12.11.2010 Seminar Open-Source-Softwareentwicklung cross-platform application and UI framework Denis Meyer Was ist Qt? plattformübergreifendes modulbasiertes Entwicklungs-Framework in C++ geschrieben,
MehrQt für C++-Anfänger. Wikibooks.org
Qt für C++-Anfänger Wikibooks.org 3. Dezember 2012 On the 28th of April 2012 the contents of the English as well as German Wikibooks and Wikipedia projects were licensed under Creative Commons Attribution-ShareAlike
MehrProgrammieren II. Dr. Klaus Höppner. Hochschule Darmstadt WS 2006/2007
Programmieren II Dr. Klaus Höppner Hochschule Darmstadt WS 2006/2007 1 / 15 Einführung: Grafische Benutzeroberflächen 2 / 15 Einführung: GUI Fast alle Programme besitzen mittlerweile eine grafische Benutzeroberfläche
MehrEinführung C++ GUI mit Qt
Einführung C++ GUI mit Qt Rudolf Lehn Schülerforschungszentrum Bad Saulgau Inhaltsverzeichnis 1 Konzepte und Konstrukte von Qt 1 1.1 Allgemeine Qt-Hinweise 1 1.1.1 Installations- und Ausführungshinweise
MehrFactory Patterns und deren Auswirkung auf die Softwarearchitektur in der Praxis
Factory Patterns und deren Auswirkung auf die Softwarearchitektur in der Praxis Klaus Kusche, Juni 2013 Inhalt Was ist das? Warum braucht man das? Was bringt das? Wann hilft es noch? Realistisches Beispiel
MehrÜbungen zur Android Entwicklung
Übungen zur Android Entwicklung Aufgabe 1 Hello World Entwickeln Sie eine Hello World Android Applikation und laden diese auf den Emulator. Leiten Sie hierfür die Klasse android.app.activity ab und entwerfen
Mehr0. Einführung & Motivation
0. Einführung & Motivation Ansatz: "C++ für Java-Kenner" Konzentration auf semantische Unterschiede 'gleichartiger' Konzepte Erörterung der C++ -spezifischen Konzepte (Overloading, Templates) Anspruch
MehrV by WBR1/BFH-TI 2011 by MOU2/BFH-TI
Java-Applets Unterlagen zum Modul OOP mit Java V 3.0 2007 by WBR1/BFH-TI 2011 by MOU2/BFH-TI Java-Applets V3.0 2011 by WBR1&MOU2/BFH- TI Lernziele Die Kursteilnehmer sind in der Lage: Möglichkeiten und
MehrC++ Kurs Teil 3. Standard Template Library (STL) Kommunikation mit der shell Hyper Text Markup Language (HTML)
C++ Kurs Teil 3 Standard Template Library (STL) Übersicht vector algorithm: sort, for_each map Kommunikation mit der shell Hyper Text Markup Language (HTML) O. Ronneberger: C++ Kurs Teil 3 Seite 1
MehrGraphische Benutzungsoberflächen mit Java. Einführung in NetBeans
Graphische Benutzungsoberflächen mit Java Einführung in NetBeans Graphische Benutzungsoberflächen! Interaktion mit dem Programm! Datenein- und ausgabe! Rückmeldungen über Verarbeitung der Daten! Visualisierung
MehrAlgorithmen und Datenstrukturen
Algorithmen und Datenstrukturen Tafelübung 03 Vererbung, Polymorphie, Sichtbarkeit, Interfaces Clemens Lang T2 11. Mai 2010 14:00 16:00, 00.152 Tafelübung zu AuD 1/26 Klassen und Objekte Klassen und Objekte
MehrLehrstuhl für Datenverarbeitung. Technische Universität München. Grundkurs C++
Was ist Qt? Qt ist ein plattformübergreifendes Entwicklungs-Framework, geschrieben in C++ Framework für C++, Bindings für andere Programmiersprachen Python, Ruby, C#... Ursprünglich für grafische Benutzeroberflächen
MehrXAML Extensible Application Markup Language. Manuel Naujoks (IB3)
Extensible Application Markup Language Manuel Naujoks (IB3) Einführung Beschreibungssprachen Vorteile Nachteile Agenda technisch Aufbau Kompilierung Verarbeitung zur Laufzeit Routed Events Zusammenfassung
MehrLehrstuhl für Datenverarbeitung. Technische Universität München. Grundkurs C++
Grundkurs C++ Was ist Qt? Qt ist ein plattformübergreifendes Entwicklungs-Framework, geschrieben in C++ Framework für C++, Bindings für andere Programmiersprachen Python, Ruby, C#... Ursprünglich für
MehrEinführung in die Programmierung Wintersemester 2014/15
Einführung in die Programmierung Wintersemester 2014/15 Prof. Dr. Günter Rudolph Lehrstuhl für Algorithm Engineering Fakultät für Informatik TU Dortmund : GUI-Programmierung Inhalt Was ist eine GUI? Was
MehrVon MFC nach Qt: Migrationswege für Softwarehersteller. Eva Brucherseifer, basyskom GbR. Dipl.-Ing. Eva Brucherseifer, basyskom GbR akademy 2004 -- 1
Von MFC nach Qt: Migrationswege für Softwarehersteller Eva Brucherseifer, basyskom GbR Dipl.-Ing. Eva Brucherseifer, basyskom GbR akademy 2004 -- 1 Der Linux-Desktop Linux-Desktop KDE Windows XP Dipl.-Ing.
MehrChair of Software Engineering. Bezieher SUBSCRIBERS Ereignis Erzeuger (zb GUI) Chair of Software Engineering. Save_file ROUTINE
1 2 Letzte Aktualisierung: 27. Mai 2004 Programmierung im Grossen Vorlesung 13: Ereignis-Gesteuertes Design Bertrand Meyer Ereignis-gesteuerte Programmierung 3 Vermeiden von glue code 4 Verbreiter PUBLISHERS
MehrC-Kurs 2010 Pointer. 16. September v2.7.3
C-Kurs 2010 Pointer Sebastian@Pipping.org 16. September 2010 v2.7.3 This work is licensed under the Creative Commons Attribution-ShareAlike 3.0 License. C-Kurs Mi Konzepte, Syntax,... printf, scanf Next
MehrObjektorientierung (OO)
Objektorientierung (OO) Objekte haben Zustände (oder Eigenschaften, Attribute) und Verhalten Zustände: Objektvariablen (in Java auch fields) Verhalten (oder Aktionen): Methoden (methods, Funktionen) members
MehrAPEX 5.0 DOAG Mai 2014
APEX 5.0 DOAG Mai 2014 APEX 5.0 16 Jahre MuniQSoft GmbH Tätigkeitsbereiche: Oracle Support Hotline: Mo-Fr 8.00 18.00 Uhr Erweiterung um Rufbereitschaft auch am Wochenende möglich Oracle IT-Consulting &
MehrVererbung und Polymorphie
Vererbung und Polymorphie Marc Satkowski, Sascha Peukert 29. September 2016 C# Kurs Gliederung 1. Methodenüberladung 2. Vererbung Polymorphie Methoden- & Eigenschaftsüberschreibung Weitere Schlüsselwörter
MehrInstitut für Programmierung und Reaktive Systeme. Java 6. Markus Reschke
Institut für Programmierung und Reaktive Systeme Java 6 Markus Reschke 13.10.2014 OOP Objekte = Verhalten (durch Methoden) + Daten (durch Attribute) Klassen = Baupläne für Objekte Kapselung von Programmteilen
MehrJavakurs für Fortgeschrittene
Javakurs für Fortgeschrittene Einheit 03: Swing Lorenz Schauer Lehrstuhl für Mobile und Verteilte Systeme Heutige Agenda Einführung in GUI-Programmierung Motivation Grundlagen von Swing Praxis: UI für
MehrÜbung 1 mit C# 6.0 MATTHIAS RONCORONI
Übung 1 mit C# 6.0 MATTHIAS RONCORONI Inhalt 2 1. Überblick über C# 2. Lösung der Übung 1 3. Code 4. Demo C# allgemein 3 aktuell: C# 6.0 mit.net-framework 4.6: Multiparadigmatisch (Strukturiert, Objektorientiert,
MehrSEW Übung EMFText. 1 Aufgabe. 2 Domänenbeschreibung. 3 Installation von Eclipse/EMFText. 4 Schritt-für-Schritt Anleitung. 4.
SEW Übung EMFText 1 Aufgabe Erstellen Sie eine textuelle Domänenspezifische Sprache Domain-specific Language (DSL) mit dem Werkzeug EMFText. Die Sprache soll dazu dienen Formulare (Fragen, Antworttypen
MehrProgrammiertechnik. Teil 4. C++ Funktionen: Prototypen Overloading Parameter. C++ Funktionen: Eigenschaften
Programmiertechnik Teil 4 C++ Funktionen: Prototypen Overloading Parameter C++ Funktionen: Eigenschaften Funktionen (Unterprogramme, Prozeduren) fassen Folgen von Anweisungen zusammen, die immer wieder
MehrJava - AWT Basispraktikum SystemArchitektur WS 2008/ Atanas Dimitrov
Java - AWT Basispraktikum SystemArchitektur WS 2008/2209 09.12.2008 Atanas Dimitrov 1 Was besprechen wir heute: AWT Klassen Die Klasse Graphics AWT Methoden Die Klasse ToolKit Ausgabe von Bilder Die Klasse
MehrTest-Klausuraufgaben Softwaretechnik Fachbereich BW, für WINFO
Test-Klausuraufgaben Softwaretechnik Fachbereich BW, für WINFO Dipl.-Ing. Klaus Knopper 21.12.2006 Hinweis: Bitte schreiben Sie auf das Deckblatt und auf jede Seite Ihren Namen und Ihre Matrikelnummer,
Mehr1 Native C Code in C# Umgebung mit Visual Studio 2010
1 Native C Code in C# Umgebung mit Visual Studio 2010 29.07.2013 1.1 Ziel Ein Embedded C Code soll innerhalb einer C# Umgebung lauf- und debuggfähig sein. Der C# Anteil stellt dem Embedded C Code einen
MehrEinführung in Qt. von. Stephan Hellenbrandt. im Rahmen des Bachelorstudiengangs. Scientific Programming
Einführung in Qt von Stephan Hellenbrandt im Rahmen des Bachelorstudiengangs Scientific Programming an der Fachhochschule Aachen Abteilung Jülich. Kontakt: Stephan Hellenbrandt BBK3 Lochnerstr. 4-20 52074
MehrGraphical User Interfaces
Graphical User Interfaces SEP 184 Toolkits es gibt verschiedene Toolkits (= Sammlungen von Klassen, Anbindungen an Betriebssystem, etc.) für grafische Oberflächen Abstract Windows Toolkit (AWT) Swing Standard
MehrQt-Projekte mit Visual Studio 2005
Qt-Projekte mit Visual Studio 2005 Benötigte Programme: Visual Studio 2005 Vollversion, Microsoft Qt 4 Open Source s. Qt 4-Installationsanleitung Tabelle 1: Benötigte Programme für die Qt-Programmierung
MehrObjektorientierte Programmierung. Kapitel 22: Aufzählungstypen (Enumeration Types)
Stefan Brass: OOP (Java), 22. Aufzählungstypen 1/20 Objektorientierte Programmierung Kapitel 22: Aufzählungstypen (Enumeration Types) Stefan Brass Martin-Luther-Universität Halle-Wittenberg Wintersemester
MehrWPF. Übersicht. Komponenten & Frameworks Seite 1
Übersicht - W indows P resentation F oundation - Werkzeug zur Entwicklung grafischer Benutzeroberflächen - deklarative Definition erfolgt mit der Beschreibungs- Sprache: XAML - XAML - Extensible Application
MehrObjektorientierte Programmierung Studiengang Medieninformatik
Objektorientierte Programmierung Studiengang Medieninformatik Hans-Werner Lang Hochschule Flensburg Vorlesung 1 15.03.2017 Objektorientierte Programmierung (Studiengang Medieninformatik) Form: Prüfung:
MehrDelegatesund Ereignisse
Delegatesund Ereignisse «Delegierter» Methoden Schablone Funktionszeiger Dr. Beatrice Amrhein Überblick Definition eines Delegat Einfache Delegate Beispiele von Delegat-Anwendungen Definition eines Ereignisses
MehrNeben der Verwendung von Klassen ist Vererbung ein wichtiges Merkmal objektorientierter
Kapitel 1 Der vierte Tag 1.1 Vererbung Neben der Verwendung von Klassen ist Vererbung ein wichtiges Merkmal objektorientierter Sprachen. Unter Vererbung versteht man die Möglichkeit, Eigenschaften vorhandener
MehrEinfache Liste: Ein Stapel (Stack) Ansatz. Schaubild. Vorlesung 1. Handout S. 2. Die einfachste Form einer Liste ist ein Stapel (stack).
Programmieren I Martin Schultheiß Hochschule Darmstadt Sommersemester 2011 1 / 64 2 / 64 Motivation Hauptteil dieser Vorlesung sind die so genannten. Zur Motivation (und als Vorbereitung der Datencontainer-Klassen
MehrEinstieg in die Informatik mit Java
1 / 35 Einstieg in die Informatik mit Java Vererbung Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 35 1 Grundlagen 2 Verdeckte Variablen 3 Verdeckte Methoden 4 Konstruktoren
Mehr/** Main-Methode erzeugt einen neuen Editor zum Testen */ public static void main(string[] args) { new Editor();
Bereich: Grafische Benutzeroberflächen (UI), Events (2) Editor Package: de.dhbwka.java.exercise.ui.editor Klasse: Editor Aufgabenstellung: Schreiben Sie einen kleinen Texteditor mit Swing! Keine Panik,
MehrSoftware Entwicklung 1
Software Entwicklung 1 Annette Bieniusa / Arnd Poetzsch-Heffter AG Softech FB Informatik TU Kaiserslautern Fallstudie: Lauftagebuch Bieniusa/Poetzsch-Heffter Software Entwicklung 1 2/ 21 Erstellen einer
MehrAlgorithmen und Datenstrukturen
Algorithmen und Datenstrukturen Tafelübung 04 Referenzen, Overloading, Klassen(hierarchien) Clemens Lang T2 18. Mai 2010 14:00 16:00, 00.152 Tafelübung zu AuD 1/13 Organisatorisches Nächster Übungstermin
MehrBerner Fachhochschule Hochschule für Technik und Informatik HTI. Kapitel 1. Einstieg in Java. Dr. Elham Firouzi 06.09.10 1
Kapitel 1 Einstieg in Java Dr. Elham Firouzi 06.09.10 1 1 : Einstieg in Java Einleitung Ein erstes Beispiel Berner Fachhochschule Entwicklung von Java-Programmen Applikationen Applets Vor und Nachteile
MehrEinführung in die Programmierung
: Inhalt Einführung in die Programmierung Wintersemester 2013/14 Prof. Dr. Günter Rudolph Lehrstuhl für Algorithm Engineering Fakultät für Informatik TU Dortmund Was ist eine GUI? Was ist QT? Erste Schritte:
MehrProgrammieren für Wirtschaftswissenschaftler SS 2015
DEPARTMENT WIRTSCHAFTSINFORMATIK FACHBEREICH WIRTSCHAFTSWISSENSCHAFT Programmieren für Wirtschaftswissenschaftler SS 2015 Lucian Ionescu Blockveranstaltung 16.03 27.3.2015 7. Graphische Oberflächen Ein
Mehr