5. Programmierung von Benutzerschnittstellen mit Qt
|
|
- Heike Kranz
- vor 6 Jahren
- Abrufe
Transkript
1 5. Programmierung von Benutzerschnittstellen mit Qt Eine kurzer Überblick zur objektorientierten Programmierung von Benutzerschnittstellen mittels C++ und Qt. Alternativen zur Realisierung von Benutzerschnittstellen: Win32-Schnittstelle MFC (Microsoft Foundation Classes) andere Bibliotheken wie z.b. wxwindows Peter Sobe 1
2 Qt Qt ist ein s.g. Widget-Toolkit zur Programmierung grafischer Benutzeroberflächen (engl. GUI, Graphical User Interface) Widget: Komponente in einem grafischen Fenstersystem (vgl. Gadget, als kleines tragbares technisches Gerät) Qt ist als C++ Klassenbibliothek mit zusätzlichen Dienstprogrammen, z.b. MOC-Compiler, QT-Designer realisiert Peter Sobe 2
3 Qt Ein QT-Programm ist wesentlich übersichtlicher als ein Win32-Programm. Mini-Beispiel: #include <QApplication> #include <QPushButton> int main(int argc, char *argv[]) { QApplication a(argc, argv); QPushButton *button = new QPushButton("Ende"); button->show(); } QObject::connect(button, SIGNAL (clicked()), QApplication::instance(), SLOT (quit())); return a.exec(); Peter Sobe 3
4 Qt Qt-Designer als eigene Entwicklungsumgebung Die Qt-Bibliothek kann auch in Visual-Studio integriert werden. Peter Sobe 4
5 Qt Prinzipien: GUI-Komponenten sind Objekte, die zum Teil aus vorgefertigten Klassen instanziiert werden können. Neue Klassen d.h. neue GUI-Komponenten durch abgeleitete Klassen und durch neu erstellte Klassen, die mehrere GUI- Komponenten (Objekte) enthalten (Komposition) Die Bedienoberfläche besteht aus hierarchisch ineinander platzierten GUI-Komponenten (Widgets) MyWindow (public QMainWindow) QTextEdit QPushButton QPushButton Peter Sobe 5
6 Qt Prinzipien (Fortsetzung): Signal-Slot-Prinzip. Bedienereignisse (Button-Click, Scrollen) lösen Ereignisse (Signals) aus. Für diese Ereignisse werden Slotsprogrammiert, die Methoden aufrufen können. Peter Sobe 6
7 Qt: Signal/Slot-Prinzip Signale werden von Widget-Objekten ausgesendet (emittiert, engl. emit) Die Entgegennahme erfolgt durch s.g. Slots, von denen ausgehend Methoden von QT-Klassen aufgerufen werden. Beispiel: QPushButton clicked() QApplication quit() Im Quellcode: QApplication appl(argc,argv); QPushButton button = new QPushButton( Beenden ); // QObject::connect(button, SIGNAL (clicked()), &appl, SLOT (quit()) ); Peter Sobe 7
8 Qt: Signal/Slot-Prinzip Signal/Slot-Prinzip: SIGNAL() und SLOT() sind C-Makros, die als Argumente Methoden der beteiligten Objekte erwarten. Ein Signal kann mit mehreren Slots verbunden werden. Mehrere Signale können mit einem Slot verbunden werden Frühere GUI-Bibliotheken nutzen die klassische Variante mit Callback- Funktionen, die an Bedienelemente gebunden wurden. Das von Qt benutze Signal/Slot-Prinzip ist flexibler und weniger fehleranfällig. Beispielsweise erfolgt beim Freigeben von Instanzen eine automatische Deaktivierung deren Slots; damit werden Programmabstürze vermieden. Peter Sobe 8
9 Qt: Klassen mit Signalen und Slots Signale und Slots werden an Klassen gebunden: Slot: Eine Methode die z. B. als public slot: void incrvalue(); deklariert wird. Ähnlich wie public, protected, private kann public slot verwendet werden. Die programmierte Methode (hier incrvalue()) wird aufgerufen, wenn ein Signal für den Slot vorliegt. Hinweis: public slot ist keine C++ Syntax und verlangt, dass der MOC (Meta Object Compiler) eine Vorverarbeitung durchführt, die das Programm in Standerd-C++-Syntax überführt. Peter Sobe 9
10 Qt: Klassen mit Signalen und Slots Signal deklarieren und emittieren: In der Klassendeklaration muss eine Methode wie folgt enthalten sein: signals: void signalcarry(); // signalsiert einen Übertrag Die Methode signalcarry() wird nicht implementiert, sondern automatisch vom MOC erzeugt. In anderen Methoden der Klasse wird anwendungsspezifisch emit signalcarry(); aufgerufen. Hinweis: Auch die Verwendung von signals und emit ist keine Standard C++ Syntax und setzt die Umwandlung in C++ durch den MOC voraus Peter Sobe 10
11 Qt: Klassen mit Signalen und Slots Klasse cntr mit Slot für Incr und Signal für Carry: #include <QObject> class cntr :public QObject { Q_OBJECT public: cntr(int nvalues); int value(); public slots: void slot_incr(); signals: void carry(); private: int z; int nv; }; Zähler (cntr) soll von n bis nvalues-1 zählen und danach wieder auf Null springen. Übertrag soll durch die Signal- Methode carry() signalisiert werden. Peter Sobe 11
12 Qt: Klassen mit Signalen und Slots Nutzung der Klasse cntr: cntr counter(10); // im Hauptfenster connect(incrbutton, SIGNAL (clicked()), &counter, SLOT (slot_incr())); connect(&counter, SIGNAL(carry()), this, SLOT(slotShowCarry())); Die Slot-Methode des Hauptfensters zeigt den Übertrag an: void MyWindow::slotShowCarry() { QMessageBox msg(qmessagebox::information, QString("Information"), QString("Carry"),QMessageBox::Ok); msg.exec(); } Peter Sobe 12
13 Qt: Anordnung mehrerer Widgets Wie im Beispiel rechts sollen drei Knöpfe (Objekte des Klassentyps PushButton) untereinander angeordnet werden. Manuell programmiert: int main(int argc, char *argv[]) { QApplication a(argc, argv); QMainWindow *win = new QMainWindow(); QPushButton* b1 = new QPushButton("Max",win); QPushButton* b2 = new QPushButton("Min",win); QPushButton* b3 = new QPushButton("Quit",win); win->resize(120,180); b1->setgeometry(10,10,100,50); b2->setgeometry(10,65,100,50); b3->setgeometry(10,120, 100,50); // } win->show(); return a.exec(); x-pos.,y-pos., x-ausdehnung, y-ausdehnung Peter Sobe 13
14 Qt: Anordnung mehrerer Widgets Nutzung eines Layout-Manager-Objekts: int main(int argc, char *argv[]) { QApplication a(argc, argv); QWidget *win = new QWidget; win->resize(120,180); QVBoxLayout *layout_obj = new QVBoxLayout(win); QPushButton* b1 = new QPushButton("Max"); QPushButton* b2 = new QPushButton("Min"); QPushButton* b3 = new QPushButton("Quit"); b1->resize(100,50); b2->resize(100,50); b3->resize(100,50); } layout_obj->addwidget(b1); layout_obj->addwidget(b2); layout_obj->addwidget(b3); win->show(); return a.exec(); Peter Sobe 14
15 Qt: Anordnung mehrerer Widgets Nutzung eines Layout-Manager-Objekts: VBoxLayout und HBoxLayout QHBoxLayout *layout_obj = new QHBoxLayout(win); QPushButton* b1 = new QPushButton("Max"); QPushButton* b2 = new QPushButton("Min"); QPushButton* b3 = new QPushButton("Quit"); layout_obj->addwidget(b1); layout_obj->addwidget(b2); layout_obj->addwidget(b3); // Peter Sobe 15
16 Einzelne Klassen in Qt Klassenhierarchie QObject QThread QWidget QAbstractButton QFrame QProgressBar QCheckBox QPushButton QRadioButton QAbstractScroll Area QGraphicsView QLabel QTextEdit Peter Sobe 16
17 Einzelne Klassen in Qt QMainWindow Wird als Hauptfenster einer Qt-Anwendung benutzt. Typischerweise leitet ein Programmierer eine neue Klasse, z.b. mywinwow von QMainWindow ab und platziert eigene Elemente im Fenster. Beispiel: MyWindow::MyWindow(){ addbutton = new QPushButton( Berechnen",this); addbutton->setgeometry(10, 110, 50, 40); Dokumentation unter: Peter Sobe 17
18 Einzelne Klassen in Qt QMainWindow QMainWindow enthält eine Menu Bar und eine Status Bar als untergeordnete Widgets. Datei Modell abc.mod geladen QMainWinwod *win = new QMainWindow(); QMenu *filemenu = win>menubar()->addmenu("&datei"); filemenu->addaction("&beenden", myapp, SLOT(quit())); win->show(); win->statusbar()->showmessage(tr( Modell geladen"), 2000); Peter Sobe 18
19 Einzelne Klassen in Qt QLineEdit QLineEdit stellt eine einzeilige Ein- und Ausgabe-Box bereit MyWindow::MyWindow(){ lab = new QLabel(tr( Ein und Ausgabe"),this); eingabebox= new QLineEdit(this); ausgabebox = new QLineEdit(this); void MyWindow::ButtonClicked() // eine Slot-Methode { Qstring e,a; e = eingabebox()->text(); a.sprintf( %lf, e.todouble() * 2.0); ausgabebox->settext(a); // hier wird der Wert der Eingabe verdoppelt //ausgegeben Peter Sobe 19
20 Einzelne Klassen in Qt QTextEdit QTextEdit stellt eine mehrzeilige Editorfläche für Text bereit. Der Text kann durch einen Konstruktorparameter gesetzt werden. Konstruktoren: QTextEdit(QWidget *parent = 0); explicit QTextEdit(const QString &text, QWidget *parent = 0); Weitere Methoden (public slots): void settext(const QString &text); QString toplaintext() const; Auswahl vordefinierter Signale: void selectionchanged(); void textchanged(); Peter Sobe 20
21 Einzelne Klassen in Qt QTextEdit Beispiel eines einfachen Texteditors: #include <QApplication> #include <QTextEdit> QTextEdit *tedit = new QTextEdit(); // Setzen des Inhalts Qstring str; str.append(tr("das ist ein netter Text.")); tedit->settext(str); // Lesen und Weiterverarbeiten des Inhalts QByteArray asciistr; str = tedit->toplaintext(); asciistr = str.tolocal8bit(); Peter Sobe 21
22 Einzelne Klassen in Qt QCheckBox QCheckBox stellt eine einfache Auswahloption (angekreuzt oder nicht) mit einer typischerweise rechteckigen Box mit oder ohne Häkchen dar. #include <QCheckBox> QCheckBox *cb1 = new QCheckBox( Fensterplatz gewünscht ); QCheckBox *cb2 = new QCheckBox( Gepäck aufgeben ); cb2->setcheckstate(qt::checked); // Platzieren cb1 und cb1 in Window, Dialog oder Layout // Verbinden des Signals statechanged(int) mit einer Slot-Methode, die // z.b. von der Fensterklasse bereitgestellt wird connect(cb1, SIGNAL(stateChanged(int), this, SLOT(auswertung(int))); // void MyWindow::auswertung(int state) { if (state==qt::checked) fenster=true; else fenster=false; } Hier wird über die Signal- Slot-Verbindung ein Parameter (Typ int) übertragen. Peter Sobe 22
23 QRadioButton Einzelne Klassen in Qt QRadioButton stellt einen Knopf innerhalb einer Knopfgruppe dar, in der nur der zuletzt gesetzte ausgewählt ist (vgl. Radio-Knöpfe UKW/MW/LW) #include <QRadioButton> #include <QGroupBox> QGroupBox* group = new QGroupBox( Wellenbereiche ); QRadioButtion *rb1 = new QRadioButton( UKW ); QRadioButtion *rb2 = new QRadioButton( MW ); rb1->setchecked(true); QVBoxLayout *vbox= new QVBoxLayout; vbox->addwidget(rb1); vbox->addwidget(rb2); group->setlayout(vbox); QVBoxLayout *vvbox = new QVBoxLayout; vvbox-> addwidget(group); setlayout(vvbox); // Umgebendes Fenster nimmt hier die Knopf-Gruppe auf Jedes RadioButton-Objekt stellt eine Signal-Methode toggled(bool) bereit. Peter Sobe 23
24 Einzelne Klassen in Qt QFileDialog QFileDialog erlaubt die Auswahl eines Dateinamens zum Laden oder Speichern einer Datei. Der Dateiauswahldialog wird vom Betriebssystem (Windows) oder dem Fenstermanager (KDE/Linux) bereitgestellt. QString filename; QFileDialog *fdlg = new QFileDialog(this, Wählen Sie ); fdlg->setfilemode(qfiledialog::existingfiles); // if (fdlg->exec()) // exec() ergibt false, wenn Auswahl abgebrochen filename = fdlg->selectedfiles(); Peter Sobe 24
25 Static-Methoden in QT Oft stellen QT-Klassen Methoden bereit, die man auch ohne eine Instanziierung eines Objekt benutzen kann Beispiel: Qstring fn; fn = QFileDialog::getOpenFileName( Bitte Datei auswählen, Qdir::homePath(), Alle Dateien (*.*) ); // Weiterverarbeitung fn Peter Sobe 25
26 Zusammenfassung Grafische Benutzeroberflächen (Fenster, grafische Bedienelemente) werden üblicherweise mit objektorientierten Klassenbibliotheken realisiert Klassen, hier am Beispiel von QT: übernehmen die Anwendungssteuerung inkl. Fensterund Ereignisverwaltung stellen vorgefertigte Bedienelemente bereit, z.b. Button, TextBox, SlideBar, Dialoge definieren die Kopplungsschnittstellen mit Objekten des Anwendungsprogramms QT-Programme sind portabel zwischen Windows, Linux u.a. Plattformen Peter Sobe 26
Grundlagen 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
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
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.
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:
MehrWas 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,
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
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
Mehrd:\c++\semesterarbeit\lottosix\lottosix.cpp /* ======================================================================== Dateiname: lottosix.
/* ======================================================================== Dateiname: lottosix.cpp 1 Zweck: Semesterarbeit ============== Erstellt ein QWidget in welchem Lottozahlen gezogen und verglichen
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
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
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
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 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
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-
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
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++
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?
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 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
MehrProgrammieren II. Java im Vergleich zu anderen Sprachen. Einführung: GUI. Einführung: Grafische Benutzeroberflächen. Dr.
Programmieren II Dr. Klaus Höppner Hochschule Darmstadt SS 2008 1 / 22 2 / 22 Einführung: GUI Fast alle Programme besitzen mittlerweile eine grafische Benutzeroberfläche (engl: Graphical User Interface,
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...
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
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:
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
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,
MehrBenutzeroberflächen. Java Teil 4
Benutzeroberflächen Java Teil 4 Einleitung Eine grafische Benutzeroberfläche (Graphical User Interface) ermöglicht dem Benutzer die Interaktion mit dem Computer über grafische Symbole. Die GUI haben in
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
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
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
MehrKlausur zu Objektorientierter Softwareentwicklung in C++ 4. Februar 2003 (WS 2002/2003) Beispiellösung
Klausur zu Objektorientierter Softwareentwicklung in C++ 4. Februar 2003 (WS 2002/2003) Beispiellösung Bearbeitungszeit: 120 Minuten NICHT MIT BLEISTIFT SCHREIBEN!!! Name: Vorname: Matrikelnummer: Aufgabe
MehrGrafische Oberflächen
Eine grafische Benutzeroberfläche (graphical user interface) oder GUI ist eine Software, die die Benutzung eines Programms über grafische Elemente, Tastatur und Zeigergeräte ermöglicht. (Und vereinfachen
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
Mehr(allgemeine) OOP in C++ Klassen und header-files Konstruktorn / Destruktoren Speicherverwaltung C++ Standard Library / SLT
Architektur Übersicht (allgemeine) OOP in C++ Polymorphie Virtuelle Funktionen Kompilieren Linken dynamische/statische Bibliotheken Tutorial: vs2008+ogre+(campus modell) Architektur (allgemeine) OOP in
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
MehrQt 4 - GUI-Entwicklung mit C++
Jürgen Wolf Qt 4 - GUI-Entwicklung mit C++ Das umfassende Handbuch Galileo Press Vorwort Warum Qt? Voraussetzungen für Qt Ziel und Zielgruppe des Buches Schnellübersicht zum Buch Danksagung 11 11 12 12
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
MehrGrafische Benutzerschnittstellen in C++ mit GTKmm Betriebssystemunabhängig gestalten 1. WILLKOMMEN IN DER WELT VON GTK+
Dieser Artikel stammt aus dem Magazin von C++.de (http://magazin.c-plusplus.de) Grafische Benutzerschnittstellen in C++ mit GTKmm Betriebssystemunabhängig gestalten 1. WILLKOMMEN IN DER WELT VON GTK+ Bevor
MehrEinführung in die GUI-Programmierung mit Qt 4
Einführung in die GUI-Programmierung mit Qt 4 Erstbetreuer: Prof. Dr. rer. nat. Gerhard Dikta Zweitbetreuer: Uli Schmidt Company TravelTainment GmbH Author Yannick Müller, Matr.-Nr.: 833948 Version Date
MehrProbeklausur: Programmierung WS04/05
Probeklausur: Programmierung WS04/05 Name: Hinweise zur Bearbeitung Nimm Dir für diese Klausur ausreichend Zeit, und sorge dafür, dass Du nicht gestört wirst. Die Klausur ist für 90 Minuten angesetzt,
MehrJürgen Bayer. MDI-Anwendungen in C#
Jürgen Bayer MDI-Anwendungen in C# Inhaltsverzeichnis 1 Grundlagen 2 1.1 Einrichten der Formulare 2 1.2 Öffnen von MDI-Childformularen 3 2 Menüs 4 2.1 Erstellen eines Menüs 4 2.2 Programmierung der Menüpunkte
MehrJava Einführung Abstrakte Klassen und Interfaces
Java Einführung Abstrakte Klassen und Interfaces Interface Interface bieten in Java ist die Möglichkeit, einheitliche Schnittstelle für Klassen zu definieren, die später oder/und durch andere Programmierer
MehrObjektorientierte Programmierung
Objektorientierte Programmierung 1 Geschichte Dahl, Nygaard: Simula 67 (Algol 60 + Objektorientierung) Kay et al.: Smalltalk (erste rein-objektorientierte Sprache) Object Pascal, Objective C, C++ (wiederum
MehrFactory Method (Virtual Constructor)
Factory Method (Virtual Constructor) Zweck: Definition einer Schnittstelle für Objekterzeugung Anwendungsgebiete: Klasse neuer Objekte bei Objekterzeugung unbekannt Unterklassen sollen Klasse neuer Objekte
MehrGrafische Benutzeroberflächen
P3.1. Gliederung Rechnerpraktikum zu Kapitel 3 Grafische Benutzeroberflächen Einleitung Ein erstes Beispiel Schwingkreisberechnung mit grafischer Oberfläche Codeschloss mit Zustandsautomat Verkehrsampel
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
MehrFunktionen Häufig müssen bestimmte Operationen in einem Programm mehrmals ausgeführt werden. Schlechte Lösung: Gute Lösung:
Funktionen Häufig müssen bestimmte Operationen in einem Programm mehrmals ausgeführt werden. Schlechte Lösung: Der Sourcecode wird an den entsprechenden Stellen im Programm wiederholt Programm wird lang
MehrGetName(), GetName(), GetGeschlecht() und AelterWerden().
11. Vererbung Vererbung ist eine der mächtigsten Funktionalitäten der objektorientierten Programmiersprachen. Man versteht unter Vererbung die Tatsache, dass eine Klasse alle Methoden und Variablen einer
MehrPräsentation Interfaces
Einführung in Java Präsentation Interfaces Nozar Delassaei Marvi Inhalt 1. Erinnerung Klasse Objekte Beispiel Klasse Abstrakte Klasse Beispiel Abstrakte Klasse Mehrfachvererbung-1 Mehrfachvererbung-2 2.
MehrProbeklausur: Programmierung WS04/05
Probeklausur: Programmierung WS04/05 Name: Hinweise zur Bearbeitung Nimm Dir für diese Klausur ausreichend Zeit, und sorge dafür, dass Du nicht gestört wirst. Die Klausur ist für 90 Minuten angesetzt,
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
MehrEinführung in die Informatik: Programmierung und Software-Entwicklung, WS 11/12. Kapitel 7. Grafische Benutzeroberflächen
1 Kapitel 7 Ziele 2 (Graphical User Interfaces) als Anwendungsbeispiel für die objektorientierte Programmierung kennenlernen Benutzung von Vererbung zur Erstellung individueller GUI-Klassen durch Erweiterung
MehrProgrammierung mit C Zeiger
Programmierung mit C Zeiger Zeiger (Pointer)... ist eine Variable, die die Adresse eines Speicherbereichs enthält. Der Speicherbereich kann... kann den Wert einer Variablen enthalten oder... dynamisch
MehrObjektbasierte Entwicklung
Embedded Software Objektbasierte Entwicklung Objektorientierung in C? Prof. Dr. Nikolaus Wulff Objektbasiert entwickeln Ohne C++ wird meist C im alten Stil programmiert. => Ein endlose while-schleife mit
MehrEinleitung. Informationsquellen: - Webseite zur Vorlesung, Abschnitt Informationen zu C und C++ Kurzeinführung in C/C++
Informationsquellen: - Webseite zur Vorlesung, Abschnitt Informationen zu C und C++ 1 Einleitung Vorteile von Java: gut strukturiert mit hohem Funktionsumfang (mächtige Standardbibliothek) weitestgehend
MehrKlassenbeziehungen & Vererbung
Klassenbeziehungen & Vererbung VL Objektorientierte Programmierung Raimund Kirner teilweise nach Folien von Franz Puntigam, TU Wien Überblick Arten von Klassenbeziehungen Untertypen versus Vererbung in
MehrProgrammieren in Java
Programmieren in Java objektorientierte Programmierung 2 2 Zusammenhang Klasse-Datei In jeder *.java Datei kann es genau eine public-klasse geben wobei Klassen- und Dateiname übereinstimmen. Es können
MehrPraktikum im Bereich Praktische Informatik Echtzeitgraphik in C++ und DirectX10. computer graphics & visualization
Praktikum im Bereich Praktische Informatik Echtzeitgraphik in C++ und DirectX10 Übersicht In den ersten Wochen: Einführung in objektorientierte Programmierung mit C++ Anschließend: Einführung in die programmierbare
MehrJava Kurs für Anfänger Einheit 4 Klassen und Objekte
Java Kurs für Anfänger Einheit 4 Klassen und Ludwig-Maximilians-Universität München (Institut für Informatik: Programmierung und Softwaretechnik von Prof.Wirsing) 13. Juni 2009 Inhaltsverzeichnis klasse
MehrTheorie zu Übung 8 Implementierung in Java
Universität Stuttgart Institut für Automatisierungstechnik und Softwaresysteme Prof. Dr.-Ing. M. Weyrich Theorie zu Übung 8 Implementierung in Java Klasse in Java Die Klasse wird durch das class-konzept
MehrSWT. -The Standard Widget Toolkit- Inhaltsverzeichnis. Thomas Wilhelm SWT. 1. Was ist SWT?
Java -The Standard Widget Toolkit- Inhaltsverzeichnis 1. Was ist? - Vorteile von - Nachteile von 2. Vorbereitungen für 3. Das erste Programm in 4. Widgets und Styleparameter 5. - Layouts Was ist ein Widget?
MehrProf. Dr. Oliver Haase Karl Martin Kern Achim Bitzer. Programmiertechnik GUI-Programmierung mit Swing
Prof. Dr. Oliver Haase Karl Martin Kern Achim Bitzer Programmiertechnik GUI-Programmierung mit Swing AWT und Swing Java enthält zwei Pakete zur Programmierung graphischer Oberflächen. java.awt: Das Abstract
MehrPraktikum Betriebssysteme 1. Aufgabe (1)
FG TECHNISCHE INFORMATIK U BS 041 01 TH 09 Praktikum Betriebssysteme 1. Aufgabe (1) Es wird ein unter LINUX lauffähiges C++-Programm ptab, mit dem Informationen über die Partitionierung von Festplatten
MehrGebundene Typparameter
Gebundene Typparameter interface StringHashable { String hashcode(); class StringHashMap { public void put (Key k, Value v) { String hash = k.hashcode();...... Objektorientierte
MehrJavakurs FSS Lehrstuhl Stuckenschmidt. Tag 3 - Objektorientierung
Javakurs FSS 2012 Lehrstuhl Stuckenschmidt Tag 3 - Objektorientierung Warum Objektorientierung Daten und Funktionen möglichst eng koppeln und nach außen kapseln Komplexität der Software besser modellieren
MehrTesten von grafischen Benutzeroberflächen
Seminarvortrag 10: Testen von grafischen Benutzeroberflächen 2004 / 06 / 28 Clemens Sommer, Gerald Peter Übersicht Motivation GUI Allgemein Fehlerquellen und deren Auswirkungen GUI Testwerkzeuge JUnit
MehrKlausurvorbereitung Lösung
Ausgabe 1 a) unsigned char erzeuge_bitmuster() static int z=0; int rest; unsigned char bm; rest = z % 4; z=z+1; switch (rest) case 0: bm = 0x00; break; case 1: bm = 0x11; break; case 2: bm = 0x33; break;
MehrKapitel 6. Vererbung
Kapitel 6 Vererbung Vererbung 1 Ziele Das Vererbungsprinzip der objektorientierten Programmierung verstehen Und in Java umsetzen können Insbesondere folgende Begriffe verstehen und anwenden können: Ober/Unterklassen
Mehr1. Übung zu "Numerik partieller Differentialgleichungen"
1. Übung zu "Numerik partieller Differentialgleichungen" Simon Gawlok, Eva Treiber Engineering Mathematics and Computing Lab 22. Oktober 2014 1 / 15 1 Organisatorisches 2 3 4 2 / 15 Organisatorisches Ort:
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
MehrHandbuch für die Erweiterbarkeit
Handbuch für die Erweiterbarkeit Inhalt Pakete für die Erweiterbarkeit... 2 Actions... 2 Items... 2 Itemset... 2 Die UseCaseNewAction... 3 Eigene Shapes... 4 Der Shape Container... 5 User Objects... 6
MehrVorlesung Datenstrukturen
Vorlesung Datenstrukturen Objektorientierung in C++ (2) Beziehungen zwischen Klassen Dr. Frank Seifert Vorlesung Datenstrukturen - Sommersemester 2016 Folie 530 Beziehungen zwischen Klassen Assoziation
MehrInstitut für Informatik
Technische Universität München Institut für Informatik Lehrstuhl für Computer Graphik & Visualisierung WS 2009 Praktikum: Grundlagen der Programmierung Aufgabenblatt 11 Prof. R. Westermann, R. Fraedrich,
MehrJava: Vererbung. Teil 3: super() www.informatikzentrale.de
Java: Vererbung Teil 3: super() Konstruktor und Vererbung Kindklasse ruft SELBSTSTÄNDIG und IMMER zuerst den Konstruktor der Elternklasse auf! Konstruktor und Vererbung Kindklasse ruft SELBSTSTÄNDIG und
MehrEinführung in die Informatik: Programmierung und Software-Entwicklung, WS 14/15. Kapitel 11. Fehler und Ausnahmen 1
Kapitel 11 Fehler und Ausnahmen Fehler und Ausnahmen 1 Ziele Fehlerquellen in Programmen und bei der Programmausführung verstehen Das Java-Konzept der Ausnahmen als Objekte kennenlernen Ausnahmen auslösen
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
MehrIT- Handbuch für Fachinformatiker, 7. Auflage: Text- Lösungen Sascha Kersken
IT- Handbuch für Fachinformatiker, 7. Auflage: Text- Lösungen Sascha Kersken Im Folgenden finden Sie jeweils die korrekte Antwort zu den im Buch abgedruckten Prüfungsfragen, soweit die Antworten in Textform
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
MehrVorkurs C++ Programmierung
Vorkurs C++ Programmierung Klassen Letzte Stunde Speicherverwaltung automatische Speicherverwaltung auf dem Stack dynamische Speicherverwaltung auf dem Heap new/new[] und delete/delete[] Speicherklassen:
MehrFenstersysteme. Wozu Fenster-Systeme?
Fenstersysteme Wozu Fenster-Systeme? Gleichzeitige Darstellung von Ausgaben mehrerer Programme Graphische Ausgaben Einfache Kommunikation zwischen Benutzer und Programm (Menüs, Formulare...) Quasi parallele
Mehr3 Objektorientierte Konzepte in Java
3 Objektorientierte Konzepte in Java 3.1 Klassendeklarationen Fragen an die Klassendeklaration: Wie heißt die Klasse? Wer darf auf die Klasse und ihre Attribute/Methoden zugreifen? Ist die Klasse eine
MehrEinstieg in die Informatik mit Java
Vorlesung vom 18.4.07, Grundlagen Übersicht 1 Kommentare 2 Bezeichner für Klassen, Methoden, Variablen 3 White Space Zeichen 4 Wortsymbole 5 Interpunktionszeichen 6 Operatoren 7 import Anweisungen 8 Form
MehrEinleitung Entwicklung in C Hello-World! Konstrukte in C Zusammenfassung Literatur. Grundlagen von C. Jonas Gresens
Grundlagen von C Jonas Gresens Proseminar C Grundlagen und Konzepte Arbeitsbereich Wissenschaftliches Rechnen Fachbereich Informatik Fakultät für Mathematik, Informatik und Naturwissenschaften Universität
MehrProgrammieren I. Strategie zum Entwurf von Klassen. Beispiele. Design von Klassen. Dr. Klaus Höppner. Beispiel: Bibliothek
Programmieren I Dr. Klaus Höppner Hochschule Darmstadt Wintersemester 2008/2009 1 / 22 2 / 22 Strategie zum Entwurf von Klassen Beispiele Objektorientierte Sichtweise: Mit welchen Objekten habe ich es
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
MehrRepetitorium Informatik (Java)
Repetitorium Informatik (Java) Tag 6 Lehrstuhl für Informatik 2 (Programmiersysteme) Übersicht 1 Klassen und Objekte Objektorientierung Begrifflichkeiten Deklaration von Klassen Instanzmethoden/-variablen
MehrProgrammentwicklung mit C++ (unter Unix/Linux)
Programmentwicklung mit C++ (unter Unix/Linux) Erste Schritte Der gcc - Compiler & Linker Organisation des Source-Codes & Libraries Automatische Programmgenerierung: Make Birgit Möller & Denis Williams
MehrObjektorientierte Programmierung
Programmierkurs C++ Kapitel 7:Objektorientierte Programmierung Seite 1 Objektorientierte Programmierung If programming in PASCAL is like put in a straightjacket, then programming in C is like playing with
MehrKapitel 8. Programmierkurs. Methoden. 8.1 Methoden
Kapitel 8 Programmierkurs Birgit Engels Anna Schulze Zentrum für Angewandte Informatik Köln Objektorientierte Programmierung Methoden Überladen von Methoden Der this-zeiger Konstruktoren Vererbung WS 07/08
MehrZentrale Objekte zur Programmierung graphischer Benutzeroberflächen (GUI)
1 JAVA für Bauingenieure Alexander Karakas SS 2008 Zentrale Objekte zur Programmierung graphischer Benutzeroberflächen (GUI) 21.05.2008 2 Was ist ein(e) GUI? GUI = Graphical User Interface = Graphische
Mehr10. Klassen. Prof. Dr. Markus Gross Informatik I für D-ITET (WS 03/04)
10. Klassen Prof. Dr. Markus Gross Informatik I für D-ITET (WS 03/04)!Objektorientierte Programmierung!Das Konzept der Klassen!Members!Objekte!Konstruktoren und Destruktoren!this-Pointer!Public und Private
MehrTECHNISCHER BERICHT. Qt4 GUI Programmierung mit Python am Beispiel BladeDesigner. Walter, Steve
LEHRSTUHL FÜR FLUGANTRIEBE TECHNISCHE UNIVERSITÄT MÜNCHEN UNIV.-PROF. DR.-ING. HANS-PETER KAU TECHNISCHER BERICHT Qt4 GUI Programmierung mit Python am Beispiel BladeDesigner Verfasser: Walter, Steve Betreuer:
MehrProf. W. Henrich Seite 1
Attribute Überblick - Attribute ermöglichen das Hinzufügen von benutzerdefinerbaren Informationen zur Klasse - analog der Sprache, Bsp.: ein schönes Auto - können zur Laufzeit abgefragt und ausgewertet
MehrGRAFISCHE BENUTZERSCHNITTSTELLEN
Vorlesung 4.4 GRAFISCHE BENUTZERSCHNITTSTELLEN Dr. Philip Mayer # 1 GUIs Grafische Benutzerschnittstellen (GUIs, Graphical User Interfaces) bieten dem Benutzer Zugriff auf ein Anwendungssystem GUIs sind
MehrVererbung & Schnittstellen in C#
Vererbung & Schnittstellen in C# Inhaltsübersicht - Vorüberlegung - Vererbung - Schnittstellenklassen - Zusammenfassung 1 Vorüberlegung Wozu benötigt man Vererbung überhaubt? 1.Um Zeit zu sparen! Verwendung
MehrÜberblick. Exkurs: Organisation des Quellcodes (1)
Überblick 1. Einführung C++ / Entwicklung/ Sprachfamilie 2. Nicht objektorientierte Erweiterungen von C 3. Grundlagen des Typkonzepts von C++ 4. Ziele der Objektorientierung 5. Objekt und Klasse, Elementfunktionen
MehrKapitel 9: Klassen und höhere Datentypen. Klassen und höhere. Objekte, Felder, Methoden. Küchlin/Weber: Einführung in die Informatik
Klassen und höhere Datentypen Objekte, Felder, Methoden Küchlin/Weber: Einführung in die Informatik Klassen Klasse (class) stellt einen (i.a. benutzerdefinierten) Verbund-Datentyp dar Objekte sind Instanzen
MehrErste Schritte der Programmierung in C
Erste Schritte der Programmierung in C C versus C++ Anatomie von C-Programmen für AVR- Mikrocontroller Unterschiede zwischen C++ und C 1 Grundlegende Unterschiede File-Extensions (Header und Quellcode)
MehrZiel dieses Kapitels: Einführung in die Grundzüge der Programmierung graphischer Benutzeroberflächen (engl.: "graphical user interface", GUI) in Java
GUI-Programmierung in Java GUI-Programmierung in Java 2002 Prof. Dr. Rainer Manthey Informatik II 1 AWT und Swing Ziel dieses Kapitels: Einführung in die Grundzüge der Programmierung graphischer Benutzeroberflächen
MehrProjektmanagement & Software Engineering
Projektmanagement & Software Engineering H. Badertscher 29. Januar 2014 Inhaltsverzeichnis 1 Software Entwicklung 2 2 Testing 6 3 Projektmanagement 8 4 Doxygen 8 5 Subversion 8 6 Qt 8 7 Examples 9 1 PmSwEng
MehrProgrammierkurs C++ Abstrakte Klassen und Methoden
Programmierkurs C++ Abstrakte Klassen und Methoden Prof. Dr. Stefan Fischer Institut für Telematik, Universität zu Lübeck http://www.itm.uni-luebeck.de/people/fischer #2 Vererbungshierarchie Obst double
Mehr