Grafische Benutzeroberflächen

Ähnliche Dokumente
Anleitung zum erstellen einer PDF-Datei aus Microsoft Word

Konfiguration eines DNS-Servers

Novell Client. Anleitung. zur Verfügung gestellt durch: ZID Dezentrale Systeme. Februar ZID Dezentrale Systeme

Folgeanleitung für Fachlehrer

Bauteilattribute als Sachdaten anzeigen

Mediator 9 - Lernprogramm

Dokumentation: Balanced Scorecard

Grafische Benutzeroberfläche mit Glade und Python

IDEP / KN8 für WINDOWS. Schnellstart

Leitfaden zur ersten Nutzung der R FOM Portable-Version für Windows (Version 1.0)

Folgeanleitung für Klassenlehrer

Meldung Lokale Anwendung inkompatibel oder Microsoft Silverlight ist nicht aktuell bei Anmeldung an lokal gespeicherter RWE SmartHome Anwendung

Qt-Projekte mit Visual Studio 2005

Im Folgenden wird Ihnen an einem Beispiel erklärt, wie Sie Excel-Anlagen und Excel-Vorlagen erstellen können.

Übersicht... 2 Dateiupload... 3 Administratorfunktionen... 4

ÖKB Steiermark Schulungsunterlagen

Datenaustausch mit dem BVK Data Room

Dateien mit Hilfe des Dateimanagers vom USB-Stick kopieren und auf der Festplatte speichern

GeoPilot (Android) die App

Einstellungen im Internet-Explorer (IE) (Stand 11/2013) für die Arbeit mit IOS2000 und DIALOG

Suche schlecht beschriftete Bilder mit Eigenen Abfragen

Durchführung der Datenübernahme nach Reisekosten 2011

Was ist PDF? Portable Document Format, von Adobe Systems entwickelt Multiplattformfähigkeit,

Neue Steuererklärung 2013 erstellen

Computeria Solothurn

Sich einen eigenen Blog anzulegen, ist gar nicht so schwer. Es gibt verschiedene Anbieter. ist einer davon.

2 DAS BETRIEBSSYSTEM. 2.1 Wozu dient das Betriebssystem. 2.2 Die Bildschirmoberfläche (Desktop) Themen in diesem Kapitel: Das Betriebssystem

3 ORDNER UND DATEIEN. 3.1 Ordner

1.) Sie verwenden einen Router:

Jederzeit Ordnung halten

Leitfaden für die ersten Schritte im INIT-eCampus. mailto:

Ihr CMS für die eigene Facebook Page - 1

Anleitung zum Upgrade auf SFirm 3.x + Datenübernahme. I. Vorbereitungen

Um die Installation zu starten, klicken Sie auf den Downloadlink in Ihrer (Zugangsdaten für Ihre Bestellung vom...)

TTS - TinyTimeSystem. Unterrichtsprojekt BIBI

Handbuch ECDL 2003 Modul 2: Computermanagement und Dateiverwaltung Dateien löschen und wiederherstellen

Erstellen eines Screenshot

OS Anwendungsbeschreibung

Windows Verbindung mit WLAN BZPflege trennen Verbindung mit WLAN EDU-BZPflege automatisch erstellen... 30

Import des persönlichen Zertifikats in Outlook 2003

NetStream Helpdesk-Online. Verwalten und erstellen Sie Ihre eigenen Tickets

Visual Basic Express Debugging

proles-login. Inhalt [Dokument: L / v1.0 vom ]

Arbeiten mit dem Outlook Add-In

Anleitung zum Upgrade auf SFirm Datenübernahme

Diese Ansicht erhalten Sie nach der erfolgreichen Anmeldung bei Wordpress.

Übung 1. Explorer. Paint. Paint. Explorer

Informatik Kurs 12 André Hoffmann. Delphi. Einführung in die Windows- Programmierung

Der Kalender im ipad

Einbindung einer ACT!12-16 Datenbank als Datenquelle für den Bulkmailer 2012

Verschlüsseln von USB-Sticks durch Installation und Einrichtung von TrueCrypt

Windows. Workshop Internet-Explorer: Arbeiten mit Favoriten, Teil 1

PDF-Erzeugung mit PDFCreator (nur für Windows, installiert universellen PDF-Druckertreiber) v11/01

Lizenzen auschecken. Was ist zu tun?

ARAkoll 2013 Dokumentation. Datum:

Bedienungsanleitung Einsatzplanung. Bedienungsanleitung Einsatzplanung. Inhalt. Bedienung einer Plan-Tabelle

MORE Profile. Pass- und Lizenzverwaltungssystem. Stand: MORE Projects GmbH

Anleitung zum Upgrade auf SFirm Datenübernahme

Anleitung zur Erstellung und Übermittlung einer Umsatzsteuer-Voranmeldung im Elster Online Portal (EOP)

Handbuch ECDL 2003 Basic Modul 2: Computermanagement und Dateiverwaltung Dateien löschen und wiederherstellen

Partnerportal Installateure Registrierung

Mac OS X: Sicherung und Wiederherstellung der Daten mittels Disk Utility

3. auf Symbol klicken erstellt von Erika Völkel

Registrierung im Portal (Personenförderung)

Diese Anleitung enthält Anweisungen, die nur durch erfahrene Anwender durchgeführt werden sollten!

Seite 1. Datum einfügen

Kurzeinführung Excel2App. Version 1.0.0

Anleitung zum Einspielen der Demodaten

2. Die eigenen Benutzerdaten aus orgamax müssen bekannt sein

9.2 Weitergeben Online-Album. 9.2 Weitergeben. Flash-Player

Schulungsunterlagen zur Version 3.3

Informatik 2 Labor 2 Programmieren in MATLAB Georg Richter

Laden der beiden virtuellen Orgeln (36 bzw. 100 Register) unter Hauptwerk

Klicken Sie mit einem Doppelklick auf das Symbol Arbeitsplatz auf Ihrem Desktop. Es öffnet sich das folgende Fenster.

Die i-tüpfelchen: Favicons

KidTime Order. Seite 1

Schrittweise Anleitung zur Installation von Zertifikaten der Bayerischen Versorgungskammer im Mozilla Firefox ab Version 2.0

ANLEITUNG EBOOKS. 1. Der Kauf von ebooks über den Onlineshop

2. ERSTELLEN VON APPS MIT DEM ADT PLUGIN VON ECLIPSE

Ein PDF erstellen. aus Adobe InDesign CC. Langner Marketing Unternehmensplanung Metzgerstraße Reutlingen

Inhalt... 1 Einleitung... 1 Systemanforderungen... 1 Software Download... 1 Prüfdokumentation... 4 Probleme... 5 Hintergrund... 5

Bedienungsanleitung Anlassteilnehmer (Vereinslisten)

Ihre Interessentendatensätze bei inobroker. 1. Interessentendatensätze

Um ein solches Dokument zu erzeugen, muss eine Serienbriefvorlage in Word erstellt werden, das auf die von BüroWARE erstellte Datei zugreift.

Tevalo Handbuch v 1.1 vom

Berechnungen in Access Teil I

Zunächst ist dieser Service nur für Mac OS verfügbar. Drucken unter Windows wird Ihnen im Laufe des Semesters zur Verfügung stehen.

Animationen erstellen

TeamSpeak3 Einrichten

Benutzerhandbuch. Leitfaden zur Benutzung der Anwendung für sicheren Dateitransfer.

Mit der Maus im Menü links auf den Menüpunkt 'Seiten' gehen und auf 'Erstellen klicken.

Handbuch ECDL 2003 Professional Modul 2: Tabellenkalkulation Vorlagen benutzen und ändern

Hilfe zur Verwendung digitaler Formulare

Microsoft Access 2013 Navigationsformular (Musterlösung)

LÖSUNGEN AUFGABEN: EXCEL XP (OHNE DATEIEN)

eduvote Ein Umfragesystem für Lehrveranstaltungen - PowerPoint Add-In -

LineQuest-Leitfaden LineQuest Dialog-Portal. Generieren der LineQuest-Auswertungsdatei

Transkript:

P3.1. Gliederung Rechnerpraktikum zu Kapitel 3 Grafische Benutzeroberflächen Einleitung Ein erstes Beispiel Schwingkreisberechnung mit grafischer Oberfläche Codeschloss mit Zustandsautomat Verkehrsampel mit Timer Folie 1

P3.2. Einleitung Why didn t we provide a GUI? The committee couldn t do it. [...] GUI was seen as just another large and complex library that people [...] could write themselves (in particular, that was my view). They did. The problem today is not that there is no C++ GUI library, but that there are on the order of 25 such libraries in use. (Bjarne Stroustrup: Evolving a language in and for the real world) Eine dieser Bibliotheken ist Qt (vergl. http://www.qt.io) Qt (Aussprache wie engl. cute ) ist auf vielen Plattformen, von Microsoft Windows, Mac OS X, Linux bis hin zu Smartphones verfügbar. Adobe Photoshop Elements, Mathematica, Google Earth und viele weitere Applikationen basieren auf Qt. Neben der Programmierung von Benutzeroberflächen ermöglicht Qt die Arbeit mit Datenbanken, Netzwerken und XML-Daten. Zugriffe auf parallel laufende Prozesse und Programme können ebenfalls programmiert werden. Folie 2

P3.3. Einleitung Qt-Benutzeroberflächen sind aus Widgets aufgebaut. Widgets (von engl. window gadget ) wie Schaltflächen, Eingabefelder, Menüs, Rollleisten, Dialogfenster usw. können auf Tastatur- oder Mausereignisse reagieren und ihre grafische Darstellung auf dem Bildschirm entsprechend anpassen. Alle Qt-Widgets sind von einer gemeinsamen Basisklasse QWidget abgeleitet: Folie 3

P3.4. Einleitung Folie 4

P3.5. Einleitung Signals und Slots Grafische Benutzeroberflächen werden durch Ereignisse (bei Qt Signals genannt) gesteuert, die zum Beispiel beim Anklicken einer Schaltfläche oder durch Mausklicks ausgelöst werden. Das Programm muss auf diese Ereignisse in der vom Anwender (!!) gewählten Reihenfolge reagieren oder ggf. auch Fehlermeldungen ausgeben. Als Ereignisempfänger dienen spezielle Methoden (bei Qt Slots genannt), die mit jeweils passenden Ereignissen verknüpft sind. (Grafik übernommen von http://doc.qt.digia.com) Folie 5

P3.6. Einleitung Folie 6

P3.7. Gliederung Rechnerpraktikum zu Kapitel 3 Grafische Benutzeroberflächen Einleitung Ein erstes Beispiel Schwingkreisberechnung mit grafischer Oberfläche Codeschloss mit Zustandsautomat Verkehrsampel mit Timer Folie 7

P3.8. Ein erstes Beispiel Ausgabe von Binär- und Hexadezimalzahlen Es soll ein Programm zur Umwandlung von Dezimalzahlen in die Binärbzw. Hexadezimaldarstellung erstellt werden: Der Anwender kann beliebige (positive, ganze) Zahlen eingeben und anschließend eine der Schaltflächen Binär oder Hexadezimal betätigen. Das Ergebnis wird in einem Meldungsfenster angezeigt. Folie 8

P3.9. Ein erstes Beispiel Erstellen Sie ein neues Qt- Widgets-Anwendungsprojekt. Unsere Applikation ist eine Dialoganwendung, wählen Sie QDialog als Basisklasse für das Hauptfenster. Folie 9

P3.10. Ein erstes Beispiel Durch Doppelklick auf den Dateinamen dialog.ui öffnet sich der grafische Dialogeditor. Hier fügen Sie die Überschrift (Label), das Eingabefeld (Line Edit) und die beiden Schaltflächen (Push Button) zum Dialog hinzu. l_titel t_zahl b_hex b_bin Denken Sie daran, jedem Widget einen Objektnamen zu geben und ggf. den angezeigten Text zu ändern (siehe Abbildung). Folie 10

P3.11. Ein erstes Beispiel Wenn der Anwender eine der beiden Schaltfläche anklickt, werden Signals ( clicked ) ausgelöst. Diese Signals werden mit passenden Slots (den Methoden on_b_bin_clicked und on_b_hex_clicked ) verbunden, wo die entsprechenden Reaktionen programmiert sind. Rechte Maustaste Folie 11

P3.12. Ein erstes Beispiel In den Slots werden zunächst lediglich Meldungsfenster dargestellt. Kompilieren und starten Sie nun die nullte Version Ihrer Applikation! Folie 12

P3.13. Ein erstes Beispiel Nachdem Sie die nullte Version Ihrer Applikation erstellt und sich von der korrekten Funktion überzeugt haben, schauen Sie sich einmal in Ruhe die vom Qt Creator (mehr oder weniger) automatisch erstellten Dateien an und versuchen Sie, den Programmaufbau zu verstehen. dialog.h: Hier finden Sie die Deklaration der Klasse Dialog, die zunächst das Verhalten und alle Eigenschaften eines normalen Dialogfensters von ihrer Basisklasse QDialog erbt. Hinzu kommen die Widgets (etwas versteckt in der Datei ui_dialog.h) und das Verhalten, welches in Ihrer konkreten Anwendung benötigt wird. dialog.cpp: Hier sind alle Methoden der Klasse Dialog definiert. main.cpp: Das Hauptprogramm erzeugt eine Instanz der Klasse Dialog und zeigt das Dialogfenster auf dem Bildschirm an. Folie 13

P3.14. Ein erstes Beispiel dialog.h dialog.cpp Aufgabe: Programmieren Sie nun die Umwandlung der eigegebenen Zahl ins Binärformat! Folie 14

P3.15. Ein erstes Beispiel Haben Sie bemerkt, wie Sie über das Attribut ui zu den einzelnen Widgets des Dialogfensters gelangen? Für jedes Widget hat der Qt Creator eine eigene Variable angelegt. Der Variablenname entspricht dem von Ihnen im grafischen Dialogeditor eingegebenen Namen. Testen Sie Ihre Applikation. Was passiert bei der Eingabe negativer Zahlen? Und bei der Eingabe von Kommazahlen? Können Sie die Applikation durch Eingabefehler zum Absturz bringen? Die nächsten Schritte, vielleicht als Hausaufgabe? Eingabefehler erkennen, ggf. Fehlermeldung anzeigen Umwandlung ins Hexadezimalformat programmieren Folie 15

P3.16. Gliederung Rechnerpraktikum zu Kapitel 3 Grafische Benutzeroberflächen Einleitung Ein erstes Beispiel Schwingkreisberechnung mit grafischer Oberfläche Codeschloss mit Zustandsautomat Verkehrsampel mit Timer Folie 16

P3.17. Schwingkreisberechnung Aufgabe: Im Rechnerpraktikum zu Kapitel 1 haben Sie ein Programm zur Simulation eines elektrischen Schwingkreises erstellt. Programmieren Sie nun eine grafische Applikation zur Schwingkreisberechnung: Die Abbildung auf Folie 6 zeigt, wie Ihre Benutzeroberfläche aussehen könnte Der Anwender soll den Widerstand R, die Induktivität L und die Kapazität C über die grafische Oberfläche eingeben und durch Druck auf die Schaltfläche Simulation die Berechnung starten. Der von Ihnen im Rahmen von Kapitel 1 erstellte Quelltext kann und soll natürlich möglichst recycelt werden nur die grafische Oberfläche muss neu entworfen werden. Die Bibliotheken chart.c/.h und matrix.c/.h/.hpp können ebenfalls benutzt werden. Folie 17

P3.18. Gliederung Rechnerpraktikum zu Kapitel 3 Grafische Benutzeroberflächen Einleitung Ein erstes Beispiel Schwingkreisberechnung mit grafischer Oberfläche Codeschloss mit Zustandsautomat Verkehrsampel mit Timer Folie 18

P3.19. Codeschloss Aufgabe: Programmieren Sie ein Codeschloss mit drei Tasten A, B und C. Der Code zum Öffnen des Schlosses lautet ABCBA. Das Codeschloss kann durch den folgenden Zustandsautomaten mit sechs verschiedenen Zuständen beschrieben werden: Start A A A 0 A 1 B 2 C 3 B 4 A 5 sonst sonst sonst sonst Ziel Folie 19

P3.20. Codeschloss Erzeugen Sie ein neues Qt-Widgets-Anwendungsprojekt und gestalten Sie zunächst eine einfache Benutzeroberfläche. Vergessen Sie nicht, allen Widgets einen eindeutigen Namen zu geben: A...B...C...B A button_a button_c button_b Folie 20

P3.21. Codeschloss Fügen Sie in der Datei dialog.h die folgenden Zeilen hinzu: Fügen Sie in der Datei dialog.cpp die folgende Zeile innerhalb des Konstruktors hinzu: Folie 21

P3.22. Codeschloss Fügen Sie nun mit dem grafischen Dialogeditor die drei Slots für die Schaltflächen A, B und C zum Dialog hinzu. Falls Sie unsicher sind, schauen Sie dazu nochmals auf Folie 11 nach Der eigentliche Ablauf des Zustandsautomaten wird in der Methode void Dialog::aktion(char taste); implementiert. Folie 22

void Dialog::aktion(char taste) P3.23. { Codeschloss // Zustandsautomat für Codeschloss switch(state) { case 0: if(taste == 'a') state = 1; break; case 1:... break; case 2:... break; case 3:... break; case 4:... break; } Wenn das Codeschloss geöffnet wurde, erfolgt eine Meldung auf dem Bildschirm. Danach wird mittels state = 0; der Anfangszustand wiederhergestellt } // Codeschloss offen? if(state == 5) { QMessageBox msgbox; msgbox.settext("schloss ist offen!"); msgbox.exec(); state = 0; // Zurück zum Anfang... } Folie 23

P3.24. Gliederung Rechnerpraktikum zu Kapitel 3 Grafische Benutzeroberflächen Einleitung Ein erstes Beispiel Schwingkreisberechnung mit grafischer Oberfläche Codeschloss mit Zustandsautomat Verkehrsampel mit Timer Folie 24

P3.25. Verkehrsampel Auch eine Verkehrsampel kann als Zustandsautomat programmiert werden. In diesem Beispiel steht die Ampel solange auf Rot, bis eine Taste betätigt wird. Die Ampel durchläuft anschließend durch einen Timer gesteuert automatisch die Zustände Rot-Gelb, Grün usw. und bleibt schließlich wieder auf Rot stehen. Zustand 0 (Rot) Nach 2 Sekunden Zustand 1 (Gelb) Tastendruck Nach 10 Sekunden Zustand 1 (Rot-Gelb) Nach 2 Sekunden Zustand 2 (Grün) Folie 25

P3.26. Verkehrsampel Aufgabe: Erzeugen Sie ein neues Qt-Widgets-Anwendungsprojekt und gestalten Sie zunächst die Benutzeroberfläche der Verkehrsampel (mit Knopf). Vergessen Sie nicht, allen Widgets einen eindeutigen Namen zu geben: l_rot l_gelb l_gruen b_anfordern Anschließend implementieren Sie das Verhalten der Verkehrsampel, den zeitlichen Ablauf, die roten/gelben/grünen Lampen Folie 26

P3.27. Verkehrsampel Folgende Probleme müssen gelöst werden: 1. Wie programmiert man einen Timer? 2. Wie färbt man die Lampen der Verkehrsampel ein? 3. Wie sieht die Struktur des Gesamtprogramms aus, wo ist der Zustandsautomat implementiert? Teilproblem 1: Timer, alle 1000 msec wird ein Ereignis generiert dialog.h dialog.cpp Folie 27

void Dialog::timerEvent(QTimerEvent *) P3.28. { Verkehrsampel switch(state) { case 0: ui->l_rot->setstylesheet("qlabel { color : red; }"); ui->l_gelb->setstylesheet("qlabel { color : black; }"); ui->l_gruen->setstylesheet("qlabel { color : black; }"); break; Diese Methode wird automatisch alle 1000 msec aufgerufen. case 1: ui->l_gelb->setstylesheet("qlabel { color : yellow; }"); if(sekunden++ == 2) state = 2, sekunden = 0; break; } case 2:... case 3:... } Teilproblem Nr. 2, Einfärben der Lampen Teilproblem Nr. 3, Zustandsautomat void Dialog::on_b_anfordern_clicked() { if(state == 0) state = 1, sekunden = 0; } Dies ist der Slot für die Schaltfläche Anfordern Folie 28