Benutzer-Werkzeuge

Webseiten-Werkzeuge


de:tkk

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:tkk [2022/03/04 13:24] – [PopupMenu] roehnerde:tkk [2022/08/23 19:03] (aktuell) – [Treeview] roehner
Zeile 1: Zeile 1:
 ===== TKK ===== ===== TKK =====
 +TTK-Widgets sehen eher wie Widgets des Betriebssystems und besser als Tkinter-Widgets. Dafür sind die Tkinter-Widgets leichter konfigurierbar. Die Widgets Combobox, Notebook, Treeview, Progressbar, Separator und Sizegrip gibt es nur als TTK-Widget.
 +
 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 151: Zeile 153:
 ==== Frame==== ==== Frame====
 {{:frame.png}} {{:frame.png}}
-Ein Frame ist ein Container für andere Widgets. Beispielsweise ist die RadiobuttonGroup ein Frame, der Radiobuttons enthält. Mit Frames kann man gut grafische Oberflächen strukturieren. +Ein Frame ist ein Container für andere Widgets. Beispielsweise ist die RadiobuttonGroup ein Frame, der Radiobuttons enthält. Mit Frames kann man gut grafische Oberflächen strukturieren. Zum Platzieren eines Widgets in einem Frame klickt man es in der TTK-Symbolleiste an und klickt dann in das Frame.
  
-Zum Platzieren eines Widgets in einem Frame klickt man es in der TTK-Symbolleiste an und klickt dann in das Frame.+Frames werden beispielsweise beim Notebook-Widget benutzt.
 ---- ----
 ==== LabelFrame ==== ==== LabelFrame ====
Zeile 228: Zeile 230:
 </code> </code>
 ---- ----
-==== PopupMenu ==== +==== Menubutton ==== 
-{{:popupmenu.png}} +{{:menubutton.png}} Ein Menubutton ist ein Button, der beim Anklicken ein PopupMenu anzeigt. 
-PopupMenu is a context menu that is invoked with the right mouse buttonAs with the Menu widget, it is defined via the //MenuItems// attribute.+Das PopupMenu muss zusätzlich angelegt und dann beim Attribut //Menu// des Menubuttons eingetragen werden. 
 +---- 
 +==== OptionMenu ==== 
 +{{:optionmenu.png}} Mit einem OptionMenu kann man in der Art eines Menüs aus einer vorgegebenen Stringliste ein Element auswählen. Die Stringliste wird im Attribut //MenuItems// angegeben.
  
-You can assign a PopupMenu to each widget. To do this, open the //Events// tab in the object inspector and select Button "Right" for the ButtonPress event. +Auf die ausgewählte Option greift man über die Kontrollvariable CV zu.
- +
-{{:en:popupmenuexample.png}} +
- +
-In the event method that is created, you program the display of the PopupMenu at the clicked position.+
  
 <code python> <code python>
-    def root_ButtonPress(self, event): +    print(self.optionMenu1CV.get())
-        self.popupMenu1.post(event.x_root, event.y_root) +
-        pass+
 </code> </code>
 +----
 +==== Notebook====
 +{{:notebook.png}} Ein Notebook-Widget stellt oben Registerkarten bereit, mit denen unten befindliche Frames aufgeschlagen werden können.
 +
 +{{:notebookexample.png}}
 +----
 +==== Treeview====
 +{{:treewidget.png}} Ein Treeview stellt eine hierarchische Struktur baumartig dar.
 +
 +Durch entsprechende Einrückung wird die Struktur über das Attribut //Items// festgelegt. Diese Struktur ist anfangs vorgegeben:
 +
 +<code>
 +First
 +  node A
 +  node B
 +Second
 +  node C
 +    node D
 + </code>
 +----
 +==== Progressbar ====
 +{{:progressbar.png}} Ein Progressbar stellt einen Fortschrittsbalken dar.
 +----
 +==== Separator ====
 +{{:separator.png}} Ein Separator ist eine horizontale oder vertikale Strecke, mit der die GUI-Oberfläche strukturiert werden kann.
 +----
 +==== Sizegrip ====
 +{{:sizegrip.png}} Ein Sizegrip-Widget wird in die rechte untere Ecke platziert um die Größe des gesamten Anwendungsfensters ändern zu können.
 ---- ----
de/tkk.1646396655.txt.gz · Zuletzt geändert: 2022/03/04 13:24 von roehner