Benutzer-Werkzeuge

Webseiten-Werkzeuge


de:tkinter

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen RevisionVorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
de:tkinter [2022/03/04 09:39] – [RadiobuttonGroup] roehnerde:tkinter [2022/08/21 18:06] (aktuell) – [Tkinter] roehner
Zeile 2: Zeile 2:
 Ein GUI-Formular wird mit Hilfe von Widgets aufgebaut. Das sind die grafischen Komponenten, die in der Tkinter- bzw. TTK-Symbolleiste zur Verfügung stehen. Nachfolgend wird grundlegendes zur Verwendung von Widgets angegeben, was in vielen Fällen auch ausreicht. Detailliertere Angaben findet man z.B. in der [[https://anzeljg.github.io/rin2/book2/2405/docs/tkinter/index.html| Tkinter Referenz]]. Ein GUI-Formular wird mit Hilfe von Widgets aufgebaut. Das sind die grafischen Komponenten, die in der Tkinter- bzw. TTK-Symbolleiste zur Verfügung stehen. Nachfolgend wird grundlegendes zur Verwendung von Widgets angegeben, was in vielen Fällen auch ausreicht. Detailliertere Angaben findet man z.B. in der [[https://anzeljg.github.io/rin2/book2/2405/docs/tkinter/index.html| Tkinter Referenz]].
  
-Ein GUI-Programm legt man mit dem Symbol {{:tkinter.png}} für neue Tk/TTK-Anwendung auf der Registerkarte Programm an. Widgets können per Drag&Drop oder durch Anklicken eines Widgets und anschließendes Klicken in das GUI-Formular platziert werden. Es wird nur absolutes Layout unterstützt. Das reicht für die meisten Zwecke vollkommen aus. Die Gestaltung einer GUI-Oberfläche mit Layoutmanagern ist deutlich schwieriger. +Ein GUI-Programm legt man mit dem Symbol {{:tkapp.png}} für neue Tk/TTK-Anwendung auf der Registerkarte Programm an. Widgets können per Drag&Drop oder durch Anklicken eines Widgets und anschließendes Klicken in das GUI-Formular platziert werden. Es wird nur absolutes Layout unterstützt. Das reicht für die meisten Zwecke vollkommen aus. Die Gestaltung einer GUI-Oberfläche mit Layoutmanagern ist deutlich schwieriger. 
  
 Attribute und Ereignisse eines Widgets werden im Objektinspektor konfiguriert. Anfangs werden nur die allerwichtigsten Attribute und Ereignisse angezeigt. Diese Filterung vereinfacht die Arbeit mit dem Objektinspektor. Man kann sich in zwei weiteren Stufen mehr beziehungsweise alle Attribute und Methoden anzeigen lassen. Attribute und Ereignisse eines Widgets werden im Objektinspektor konfiguriert. Anfangs werden nur die allerwichtigsten Attribute und Ereignisse angezeigt. Diese Filterung vereinfacht die Arbeit mit dem Objektinspektor. Man kann sich in zwei weiteren Stufen mehr beziehungsweise alle Attribute und Methoden anzeigen lassen.
Zeile 91: Zeile 91:
  
 Zur Listbox gehört eine Kontrollvariable CV über die man Zugriff auf alle Strings hat. Für den Zugriff auf die ausgewählten Strings hat die Listbox spezifische Methoden. //curselection()// liefert ein Tupel mit den Positionen aller ausgewählten Strings und //get(i)// den String an Position i. Zur Listbox gehört eine Kontrollvariable CV über die man Zugriff auf alle Strings hat. Für den Zugriff auf die ausgewählten Strings hat die Listbox spezifische Methoden. //curselection()// liefert ein Tupel mit den Positionen aller ausgewählten Strings und //get(i)// den String an Position i.
- 
  
 Beispiele: Beispiele:
Zeile 119: Zeile 118:
   print(self.spinbox1CV.get())   print(self.spinbox1CV.get())
 </code> </code>
-\\ 
 ---- ----
 ==== Scrollbar ==== ==== Scrollbar ====
Zeile 125: Zeile 123:
  
 Mit einem Scrollbar kann man einen Bildlauf durchführen, bei dem der sichtbare Ausschnitt eines dargestellten Textes oder einer Grafik verschoben wird. Einige Widgets wie z. B. Entry, Text, Listbox oder Canvas können über das //Scrollbar//-Attribut ganz einfach mit horizontalen oder vertikalen Scrollbars versehen werden. Mit einem Scrollbar kann man einen Bildlauf durchführen, bei dem der sichtbare Ausschnitt eines dargestellten Textes oder einer Grafik verschoben wird. Einige Widgets wie z. B. Entry, Text, Listbox oder Canvas können über das //Scrollbar//-Attribut ganz einfach mit horizontalen oder vertikalen Scrollbars versehen werden.
- 
-\\ 
 ---- ----
 ==== Message==== ==== Message====
Zeile 132: Zeile 128:
  
 Das Message-Widget ähnelt dem Label-Widget, ist aber zur Anzeige von mehrzeiligem Text gedacht. Das Message-Widget ähnelt dem Label-Widget, ist aber zur Anzeige von mehrzeiligem Text gedacht.
- 
-\\ 
 ---- ----
 ==== Canvas==== ==== Canvas====
Zeile 147: Zeile 141:
  
 Eine Dokumentation der Zeichenbefehle findet man unter [[https://anzeljg.github.io/rin2/book2/2405/docs/tkinter/canvas.html]]. Eine Dokumentation der Zeichenbefehle findet man unter [[https://anzeljg.github.io/rin2/book2/2405/docs/tkinter/canvas.html]].
- 
-\\ 
 ---- ----
  
Zeile 156: Zeile 148:
  
 Zum Platzieren eines Widgets in einem Frame klickt man es in der Tkinter Symbolleiste an und klickt dann in das Frame. Zum Platzieren eines Widgets in einem Frame klickt man es in der Tkinter Symbolleiste an und klickt dann in das Frame.
-\\ 
 ---- ----
 ==== LabelFrame ==== ==== LabelFrame ====
 {{:labelframe.png}} {{:labelframe.png}}
 Ein LabelFrame ist ein Frame, das zusätzlich einen Rahmen mit integriertem Label hat. Ein LabelFrame ist ein Frame, das zusätzlich einen Rahmen mit integriertem Label hat.
-\\ 
 ---- ----
 ==== Scale ==== ==== Scale ====
Zeile 175: Zeile 165:
     print(self.scale1CV.get())     print(self.scale1CV.get())
 </code> </code>
- 
-\\ 
 ---- ----
 ==== PanedWindow ==== ==== PanedWindow ====
Zeile 187: Zeile 175:
  
 Zum Einfügen eines Widgets in ein PanedWindow klicken Sie in der Tkinter Symbolleiste zuerst das Widget und dann in das PanedWindow. Zum Einfügen eines Widgets in ein PanedWindow klicken Sie in der Tkinter Symbolleiste zuerst das Widget und dann in das PanedWindow.
-\\ 
 ---- ----
 ==== Menu ==== ==== Menu ====
Zeile 210: Zeile 197:
 </code> </code>
  
-Für die Menüeinträge werden Ereignismethode angelegt, die bei der Auswahl des Menüeintrags aufgerufen werden.+Für die Menüeinträge werden Ereignismethoden angelegt, die bei der Auswahl des Menüeintrags aufgerufen werden.
  
 <code python> <code python>
Zeile 217: Zeile 204:
         pass         pass
 </code> </code>
-\\ 
 ---- ----
 ==== PopupMenu ==== ==== PopupMenu ====
Zeile 234: Zeile 220:
         pass         pass
 </code> </code>
-\\ 
 ---- ----
 ==== Menubutton ==== ==== Menubutton ====
 {{:menubutton.png}} Ein Menubutton ist ein Button, der beim Anklicken ein PopupMenu anzeigt. {{:menubutton.png}} Ein Menubutton ist ein Button, der beim Anklicken ein PopupMenu anzeigt.
 Das PopupMenu muss zusätzlich angelegt und dann beim Attribut //Menu// des Menubuttons eingetragen werden. Das PopupMenu muss zusätzlich angelegt und dann beim Attribut //Menu// des Menubuttons eingetragen werden.
-\\ 
 ---- ----
 ==== OptionMenu ==== ==== OptionMenu ====
Zeile 249: Zeile 233:
     print(self.optionMenu1CV.get())     print(self.optionMenu1CV.get())
 </code> </code>
- 
-\\ 
 ---- ----
  
de/tkinter.1646383156.txt.gz · Zuletzt geändert: 2022/03/04 09:39 von roehner