ansis - Python lernen tkinter

       

tkinter (Toolkit-Interface) ist eine Bibliothek in Python zur Erzeugung von Komponenten einer grafischen Benutzeroberfläche.

Aufgabe 1
Ändere die Dimension der Zeichenfläche.

Aufgabe 2
Ändere den Abstand der Gitternetzlinien.

Aufgabe 3
Zeichne die andere Diagonale ein.

  

Aufgabe 4
Füge weitere Streichhölzer hinzu. Ändere die Farbe des Holzes und des Schwefels.
Gruppiere die Hölzchen in Fünfergruppen.

  

Aufgabe 5
Zeichne das "Haus vom Nikolaus". Nutze diesen Link!

Um das Zeichnen beobachten zu können, versuche die die Methode sleep() der Bibliothek time zu nutzen.
import time
time.sleep(1.5)
Das geht so leider aber nicht!

Lerne am folgendem Beispiel, wie man eigene Grafikbausteine selbst definieren und nutzen kann.

Definiere eine Funktion Haus, welche es nun erlaubt beliebig viele Häuser an verschiedenen Stellen in verschiedenen Größen zeichnen zu lassen.
def haus(xa,ya,l)

Passe das Programm den Gewohnheiten aus dem Mathe-Unterricht an:
- Koordinatenursprung ist links unten
- eine Einheit entspricht dem Abstand zweier benachbarter Gitternetzlinien.

Aufgabe 6
Wir wollen Aktionen der Maus in unsere Programme einbauen.

  1. Zeichne Kreuz an der angeklickten Stelle.
  2. Zeichne anstelle des Kreuzes einen Kreis um den angeklickten Punkt.
  3. Ändere das Programm so ab,
    - dass der Mittelpunkt des Kreises im Rasterfeld liegt und die Kreislinie die Rasterlinien tangiert.
    - dass eine Funktion Kreis den gewünschten Kreis zeichnet, jedoch ausgehend von der Position des Kreises im Kästchenraster.
       Der nachfolgend abgebildete Kreis ist an der Position "Zeile 1 und Spalte 0" gezeichnet.
       Dieser Kreis sollte durch den Aufruf   kreis(1,0,"green")   gezeichnet werden.
       Rechne dazu die Koordinaten des Mouse-Events in die Positionsangabe des angeklickten Kästchens um. Hilfe: s = x//dx
     
  4. Füge nun Aktionen für weitere Ereignisse der Maus hinzu.
    Mit dem Doppelklick soll ein gelber Kreis, mit Rechtsklick ein grüner Kreis gezeichnet werden.

  5. Verwalten von Bildschirmobjekten
    Wir wollen den Zustand der einzelnen Rasterfelder in einem Datenmodell abbilden.
    Lerne dazu einiges über die Datenstruktur Liste.
  6. Mach dich mit dem folgenden Programm vertraut.

    download

    Erweitere das Programm:

    1. Mit Rechtsklick soll die Lampe ausgeschalten (grau) werden.
    2. Linker Doppelklick schaltet die Lampe (gelb) ein.
    3. Der Zustand der Lampen soll in der Liste feld gespeichert werden.
      feld[z][s]=False
      feld[z][s]=not feld[z][s]
      Speichere deine Lösung.
       
    4. Mach dich mit der folgenden Aufgaben Flutlicht aus dem Bundeswettbewerb Informatik vertraut.
      Ein überdachter Freizeitpark wird von in luftiger Höhe angebrachten Flutern lauschig beleuchtet. Die lichtdurchflutete Fläche ist quadratisch und in 5 x 5 gleich große quadratische Beleuchtungsfelder eingeteilt. Über jedem Beleuchtungsfeld hängt genau ein Fluter. Die Fluter werden von einer Zentrale aus gesteuert: Auf einem Monitor befindet sich ein maßstäblich verkleinertes Abbild der Beleuchtungsfelder. Die Fluter werden durch einen Mausklick auf das jeweilige Quadrat ein- und ausgeschaltet. Leider hat die Steuerung der Flutlichtanlage einen irreparablen Schaden, es werden nämlich gleichzeitig mit einem Fluter auch noch alle benachbarten Fluter geschaltet und zwar eingeschaltet, wenn sie ausgeschaltet waren, und umgekehrt. Zwei Fluter werden dabei genau dann als benachbart betrachtet, wenn sie in einer Zeile oder Spalte unmittelbar nebeneinander liegen. Da sich die Gemeinde wegen akuten Geldmangels in absehbarer Zeit keine neue Steuerung leisten kann, braucht sie deine Hilfe .... .
      Simuliere das Verhalten der Lampen im Freizeitpark mit deinem Programm.

      Ändere dazu dein bisheriges Programm und speichere es als flutlicht-01.py.

      Nach dem Programmstart sind alle Lampen aus.

      Mitteklick schaltet die Lampe, ohne die benachbarten Lampen zu ändern.

      Rechtsklick schaltet alle Lampen aus.

      Linksklick soll das Schalten einer Lampe wie in der Aufgabenstellung ausführen.
      Gehe zuerst von der einer Lampe aus , die nicht am Rand liegt.

      Das folgende Programmfragment gibt dir Lösungshinweise.


      Beim Testen der Lösung kommt es unter bestimmten Bedingungen zu Fehlermeldungen in der Python Shell.
      Füge in das Programm bedingte Anweisungen ein, um die Ursache der Fehlermeldungen zu beseitigen.

  7. Ändere das Programm flutlicht-01.py ab, um die Simulation "Game of Life" zu programmieren.
    Auf den Schul-PCs findest auf dem Desktop den Ordner Unterrichtsmaterialien und dort unter \Fach\info\Programme eine Link Game of Life zu einem Java-Programm GridLife.
    Die Anleitung zu diesem Programm ist die Datei Game of Life.pdf.
    Nutze die Funktion des vorgegebenen Programms.
    Speichere dein Programm als GamOfLife-01.py.
    1. Deine erste Aufgabe ist es, die Anzahl der benachbarten lebenden Zellen einer Zelle zu bestimmen.
    2. Erzeuge eine Kopie feld_neu der Liste feld.
    3. Gehe jede Zelle in feld durch, bestimme die Anzahl der lebenden Nachbarzelle, entscheide ob die Zelle leben wird oder nicht, und trage das Ergebnis in feld_neu ein.
    4. Kopiere nun die Werte aus  feld_neu in feld.
      Stelle den Zustand der neuen Zellgeneration auf dem Bildschirm dar.
    5. Wiederhole ab c) beliebig oft..

     

     


 

 

An Introduction to Tkinter

GUI-Entwicklung mit tkinter

Python Tkinter