Inhaltsverzeichnis

17.5.0 ColumnView

Die Klasse ColumnView in gb.qt4 (→ gb.gui.base) implementiert ein Steuerelement, das eine TreeView mit Spalten anzeigt.

17.5.0.1 Eigenschaften ColumnView

Die Klasse ColumnView verfügt u.a. über diese Eigenschaften:

EigenschaftDatentypBeschreibung
AutoResize BooleanGibt den Wert zurück oder legt fest, ob die Weite der letzten Spalte automatisch dem Inhalt angepasst oder erweitert wird, so dass der verbleibende sichtbare Bereich verwendet wird.
Columns _ColumnView_ColumnsGibt eine virtuelle Sammlung aller Spalten in der Spaltenansicht zurück.
CountIntegerGibt die Anzahl aller Zeilen zurück.
Current_TreeView_ItemGibt die aktuelle Zeile zurück – also die Zeile, die den Fokus hat oder die im Single-Mode ausgewählt/markiert ist.
HeaderBooleanGibt an, ob eine Kopfzeile (Header) mit den Spaltenüberschriften sichtbar ist oder nicht. Ist der boolsche Wert True, dann wird die erste Zeile als Header interpretiert und der Index für alle weiteren Zeilen beginnt mit 1.
Item_TreeView_ItemGibt die Zeile zurück, auf die der interne Zeiger zeigt. Es wird NULL zurück gegeben, wenn der interne Zeiger nicht verfügbar ist.
KeyStringGibt den Schlüssel einer Zeile zurück.
ResizableBooleanZeigt an, ob die Spalten in der Größe (mit der Maus) veränderbar sind oder nicht.
SortedBooelanGibt an, ob die Zeile sortiert sind oder nicht.

Tabelle 17.5.0.1.1 : Ausgewählte Eigenschaften der Klasse ColumnView

Klasse _ColumnView_Columns:

Die Klasse _ColumnView_Columns verfügt nur über diese vier Eigenschaften:

Ascending As Boolean
Gibt an, ob die Sortierung auf aufsteigend oder absteigend eingestellt ist.

Count As Integer
Gibt die Anzahl der Spalten zurück oder legt sie fest.

Max As Integer
Gib den größten Spaltenindex zurück.

Sort As Integer
Gibt den Spalten-Index zurück, der zum Sortieren der ColumnView-Zeile verwendet wird oder legt diese Spalte über den Index fest.
Der Wert -1 gibt an, dass die Zeile nicht sortiert sind.

Im folgenden Beispiel wird eine Spalte – entsprechend ihrem Index – zurück gegeben, deren 4 Eigenschaften Sie anschließend zum Beispiel abfragen können:

Dim hColumnView As ColumnView
Dim hGridViewColumn As _ColumnView_Columns
 
hGridViewColumn = hColumnView.Columns[ Index As Integer ]
 
Print hGridViewColumn.Count	' hColumnView.Columns[Index As Integer].Count
Print hGridViewColumn.Max	' hColumnView.Columns[Index As Integer].Max
Print hGridViewColumn.Sort	' hColumnView.Columns[Index As Integer].Sort
Print hGridViewColumn.Ascending	' hColumnView.Columns[Index As Integer].Ascending

17.5.0.2 Methoden ColumnView

Die Klasse ColumnView besitzt diese ausgewählten Methoden:

MethodeRückgabetypBeschreibung
Exist ( Key As String )BooleanZurückgegeben wird der Wert True, wenn die Zeile mit dem angegebenen Key existiert.
Clear()-Löscht alle Zeilen. Eine existierende Kopfzeile bleibt vollständig erhalten!
MoveBack()BooleanWenn eine der anderen Move-Methoden den Wert True zurück gibt, so können Sie diese Methode benutzen, um den internen Zeiger an seine ursprüngliche Position zu bewegen. Es wird True zurück gegeben, wenn der interne Zeiger nicht auf einer gültigen Position war.
MoveBelow()BooleanBewegt den internen Zeiger auf eine Zeile unterhalb der aktuellen. Es wird True zurückgegeben, wenn die Verschiebung nicht ausgeführt werden kann.
MoveTo ([ Key As String ])BooleanSetzt den internen Zeiger auf die Zeile mit dem angegebenen Key in einer ColumnView.
MoveBelow()BooleanBewegt den internen Zeiger auf eine Zeile unterhalb der aktuellen. Es wird True zurückgegeben, wenn die Verschiebung nicht ausgeführt werden kann.
MoveCurrent()BooleanSetzt den internen Zeiger auf eine markierte Zeile in der ColumnView. Es wird True zurückgegeben, wenn die Verschiebung nicht ausgeführt werden kann.
MoveFirst()BooleanSetzt den internen Zeiger in der ColumnView auf die erste Zeile. Es wird True zurückgegeben, wenn die Liste leer ist.
MoveLast()BooleanSetzt den internen Zeiger in der ColumnView auf die letzte Zeile. Es wird True zurückgegeben, wenn die Liste leer ist.
MoveNext()BooleanSetzt den internen Zeiger in der ColumnView auf die nächste Zeile. Es wird True zurückgegeben, wenn die Verschiebung nicht ausgeführt werden kann.
Remove(Key As String)-Entfernt die Zeile mit dem Schlüssel 'Key' aus dem Steuerelement ColumnView.

Tabelle 17.5.0.2.1 : Ausgewählte Methoden der Klasse ColumnView

Die Add(…)-Methode fügt eine neue Zeile in die ColumnView ein:

Add ( Key As String, Text As String [ , Picture As Picture, Parent As String, After As String ] ) As _TreeView_Item

Um die Eigenschaften, Methoden und Ereignisse des Steuerelements ColumnView zu verstehen, müssen Sie die (virtuelle) Klasse _TreeView verstehen, denn die ColumnView ist im Grunde eine _TreeView, der Quelltext hinzugefügt wurde, um Spalten zu verwalten, die bereits in _TreeView verfügbar sind. Um die Verwirrung zu steigern sei angemerkt, dass ein _TreeView seinerseits intern ein GridView ist – ein Gitter aus Zellen, in die Sie Text und Bilder einfügen können. Sie können aber von einem _TreeView nicht auf diese Zellen frei zugreifen. Der Grund liegt darin, dass ein einzelnes _TreeView-Zeile eine ganze *Zeile* in der GridView ist.

Beispiel: Durch den Aufruf der Add-Methode:

ColumnView.Add("1", "Text erste Spalte", pibIcon1)

erzeugen Sie eine neue Zeile – identifiziert durch den Schlüssel „1“ – der in der einzigen (ersten) Spalte der Text „Text erste Spalte“ und ein vorangestelltes Icon hinzugefügt wird. Da der Rückgabewert der Add-Methode ein _TreeView_Item-Objekt ist, können Sie die Texte von weiteren ColumnView Spalten – jedoch ohne ein Bild vom Typ Picture – über dieses Objekt festlegen, wenn das erforderlich wird:

ColumnView.Add("1", "Text erste Spalte")[1] = "Text zweite Spalte der 1. Zeile"
ColumnView.Add("1", "Text erste Spalte")[2] = "Text dritte Spalte der 1. Zeile"

Eine Alternative zum Erzeugen einer Zeile einer ColumnView mit mehreren Spalten besteht zum Beispiel darin, den Rückgabewert der Add-Methode nicht direkt zu nutzen, sondern in einer Variablen vom Datentyp _TreeView_Item zu speichern und mit dieser Variablen weiter zu arbeiten:

Dim hItem As _TreeView_Item
 
hItem = ColumnView.Add("1", "Text erste Spalte", pibIcon1)
hItem[1] = "Text zweite Spalte der 1. Zeile"
hItem[2] = "Text dritte Spalte der 1. Zeile"

Ein anderen Ansatz mit einer Doppel-Indizierung bietet Alternative 2:

ColumnView.Add("1", "Text erste Spalte", pibIcon1)
ColumnView[1][1] = "Text zweite Spalte der 1. Zeile"
ColumnView[1][2] = "Text dritte Spalte der 1. Zeile"

Die besondere Behandlung der ersten Spalte in einem Zeile (Zeile) einer ColumnView gegenüber den weiteren Spalten ist gewöhnungsbedürftig, zumal man nur der ersten Spalte ein Bild zuweisen kann.

17.5.0.3 Ereignisse ColumnView

Die Klasse ColumnView besitzt unter anderem die folgenden Ereignisse:

EreignisBeschreibung
_Click()Das Ereignis wird ausgelöst, wenn auf ein Zeile in der ColumnView geklickt wird.
_Activate()Dieses Ereignis wird ausgelöst, wenn auf ein Zeile in der ColumnView doppelt geklickt wird.
_Select()Das Ereignis wird ausgelöst, wenn sich die Markierung der Zeilen in einer ColumnView geändert hat.

Tabelle 17.5.0.3.1 : Ausgewählte Ereignisse der Klasse ColumnView

17.5.0.4 Exkurs GridView, TableView und ColumnsView

Die folgende Tabelle enthält einige Angaben zu ausgewählten Eigenschaften der drei Steuerelemente GridView, TableView und ColumnsView, die Ihnen die Auswahl des Gitters für Ihre Projekte erleichtern sollen:

Die Klasse ColumnView besitzt unter anderem die folgenden Ereignisse:

EreignisGridViewTableViewColumnView
Titelzeile?xxx
Zellen editierbar?-xx
Multi-Selektion möglich?xxx
Icons in Zellen anzeigbar?xxNur 1. Spalte
Text in Zellen individuell formatierbar?xx-
Zugriff auf Daten mit einem Key?--x
Anzeige Gitter?xx-
Gitter abschaltbar?xx-

Tabelle 17.5.0.4.1 : Ausgewählte Eigenschaften der Steuerelemente GridView, TableView und ColumnsView

Download

Artikel

Download