Eigenschaften und Ereignisse des Panels
Eigenschaftenfenster
Beim Öffnen eines Panels öffnet sich das Eigenschaftenfenster, in dem Sie die Paneleigenschaften editieren können.
Die folgende Abbildung zeigt Ihnen die Registerkarte Standard für ein Panel.
Abbildung: Eigenschaftenfenster für Panel
Im Folgenden werden die Eigenschaften eines Panels beschrieben:
Eintrag im Eigenschaftenfenster | Erklärung | |||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Name |
Panelname Der Panelname ist eine eindeutige Bezeichnung des Panels, die nach dem Speichern im Fenstertitel angezeigt wird. Wenn Sie Panels in Skripts ansprechen wollen, müssen Sie Panelnamen vergeben. Der Name muss eindeutig sein. |
|||||||||||||||
Typname |
Der Typname kann wie der Panelname bei Stylesheets zur genaueren Definition von Selektoren verwendet werden. Wie bei Grafikobjekten ist es auch möglich, den Typ eines Panels zur Laufzeit über getValue/setValue abzufragen bzw. zu setzen (z.B.: setValue(myModuleName() + "." + myPanelName() + ":", "type", "paneltype1" );). Hinweis Wird das "type"-Attribut zur Laufzeit geändert, muss das Stylesheet-Property erneut angewendet werden (siehe setApplicationProperty()). Bei der Angabe des Typnamens sind nur ASCII-Zeichen erlaubt. |
|||||||||||||||
Größe X, Y |
Die Höhe und Breite des Panels in Pixel. (verfügbar via CTRL) - size(width, height) Hinweis: Mit Qt5 beträgt zwar die maximale mögliche Größe eines Panels QSize (16777215,16777215) Pixel, jedoch wird empfohlen die Größe von 32.000 x 32.000 Pixel nicht zu überschreiten, da nur dann jedes Pixel dargestellt wird. Jedoch ist auch vom Erstellen in dieser Größe abzuraten, wenn keine hochleistungsfähige Grafikkarte verwendet wird. Ebenso kann es unter Windows zu einem zu hohen GDI-Ressourcenverbrauch führen. Somit wird empfohlen, mehr kleine Panels als ein großes zu erstellen. |
|||||||||||||||
Layout Rand links, oben, rechts, unten | Definiert den Abstand des Layouts zum Panelrand. | |||||||||||||||
Layout Typ |
Gibt an, ob Layoutmanagement verwendet werden soll und wenn ja, in welcher Form. Zur Auswahl stehen:
Eine nähere Beschreibung finden Sie im Kapitel Layoutmanagement. |
|||||||||||||||
Layout Zwischenraum | Definiert, wie viel Abstand zwischen den verschiedenen Layouts vorhanden sein soll. | |||||||||||||||
Aktive Ebene |
Zeigt die sichtbaren Ebenen Beim Klick in dieses Feld öffnet sich das Layerfenster (siehe auch Das Layerfenster (Layer-Einstellungen)). Es gibt die Standardebene (Default = 1) und weitere sieben Ebenen. Beispielsweise weisen Sie das Grafikobjekt der Ebene 2 zu, indem Sie in dem Feld die Ebene 2 auswählen. Im Layerfenster können Sie auch Ebenennamen vergeben, die Ebenen ausblenden (Checkbox Visible). |
|||||||||||||||
Fenster Icon |
Definiert über den angegebenen Dateinamen (z.B. myIcon.jpg) ein Icon, welches zur Laufzeit links in der Titelleiste des Panels angezeigt wird. Das Icon muss im /pictures Verzeichnis abgelegt werden. Bei einem Leerstring wird wieder das Default-Icon angezeigt. |
|||||||||||||||
Im Speicher halten |
Damit bleibt das Panel nach dem Schließen im Speicher. Mit dem Attribut können Sie wählen, ob das Panel im Arbeitsspeicher bleiben soll. Da defaultmäßig gespeichert wird, können Sie durch ein No die Speicherbelastung verringern. (verfügbar via CTRL) - keepInMemory(bool) Hinweis Wenn man in einem Panel mit der Defaulteinstellung "Im Speicher halten" Referenzen verwendet und diese ändert, so wirkt sich die Änderung erst nach einem UI-Neustart aus. |
|||||||||||||||
maximumSize | Setzt oder liefert die maximale Größe eines Panels (verfügbar via CTRL) - maximumSize(width, height) | |||||||||||||||
mapFromGlobal | Erlaubt es die globalen Koordinaten in Panel relative Koordinaten zu konvertieren. Panel Koordinaten sind basierend auf der linken oberen Ecke (0,0) des Panels und beachten nicht, ob das Panel gezoomt oder in Originalgröße ist. (verfügbar via CTRL) - mapFromGlobal(int gx, int gy, int &x, int &y); | |||||||||||||||
mapToGlobal | Erlaubt es die Panel relativen Koordinaten in globale Koordinaten zu konvertieren. Panel Koordinaten sind basierend auf der linken oberen Ecke (0,0) des Panels und beachten nicht, ob das Panel gezoomt oder in Originalgröße ist. (verfügbar via CTRL) - mapToGlobal(int x, int y, int &gx, int &gy); | |||||||||||||||
minimumSize | Setzt oder liefert die minimale Größe eines Panels (verfügbar via CTRL) - minimumSize(width, height) | |||||||||||||||
moduleName | Liefert den Namen des momentanen Moduls (vgl. myModuleName()) (Nur Lesen; Verfügbar via CTRL) - moduleName(string) | |||||||||||||||
namePath |
Liefert den Pfad der Panel Referenz basierend auf von der Position des obersten Parent Panels. (read-only; verfügbar via CTRL) - namePath() Nur verfügbar für Panelreferenzen. |
|||||||||||||||
panel |
Liefert einen Pointer auf das angegebene Panel (Nur Lesen; Verfügbar via CTRL) - panel(string panelName, shape &panel) Nicht verfügbar für Panelreferenzen. |
|||||||||||||||
Panel Datei Name | Relatriver Pfad des Panels innerhalb des Dateisystems (verfügbar via CTRL) - panelFileName(string) | |||||||||||||||
Panel Hintergrund |
Die Hintergrundfarbe und/oder das Hintergrundbild des Panels. Den Panelhintergrund können Sie mit einer Farbfläche (Es öffnet sich der Farbselektor) und/oder mit einem Bild
ausgestalten. Das Bild muss im Unterverzeichnis Hinweis
|
|||||||||||||||
parentPanel | Liefert einen Pointer auf das Parent Panel des momentanen Panels wenn es sich innerhalb eines eingebetteten Moduls befindet, ansonsten wird ein ungültiger 0-Pointer zurückgeliefert (Nur Lesen; Verfügbar via CTRL) - parentPanel(shape) | |||||||||||||||
parentShape | Liefert einen Pointer auf das Shape des eingebetteten Moduls wenn sich das momentane Panel in einem eingebetteten Modul befindet, ansonsten wird 0 zurückgeliefert (Nur Lesen; Verfügbar via CTRL) - parentShape(shape) | |||||||||||||||
Referenz Datei | Anstatt des Standardparametrierpanels können Sie zum Setzen von $-Parametern beim Einfügen von Referenzen individuell erstellte Panels verwenden. Die Einbindung von Panels als Parametrierpanel erfolgt durch Eintragen des Panelnamens neben dem Attribut "Referenz-Datei" im Eigenschaftenfenster des Referenzpanels, zum Beispiel "para/refpanel.pnl". oder fertige Panels: objects_parampanels/STD_ACTIVEX/CircularAnalog_para.pnl | |||||||||||||||
Referenzpunkt X, Y | Die Position eines Panels wird durch die Koordinaten bestimmt. Das ist wichtig, wenn ein Panel als Referenz von einem anderen Panel verwendet wird. (Siehe Kapitel Eigenschaften von Referenzen und Überparametrierung). | |||||||||||||||
rootPanel | Liefert einen Pointer auf des Root Panel des momentanen Panels. Wenn kein Root Panel vorhanden ist wird das momentane Panel zurückgeliefert. (Nur Lesen; Verfügbar via CTRL) - rootPanel(shape) | |||||||||||||||
Selektion zur Laufzeit | "Selektion zur Laufzeit" zum Einschalten (default: aus). Die Möglichkeit die Selektion von primitiven Shapes in einem Vision-Modul zu aktivieren. Siehe Mehrfachselektion zur Laufzeit. | |||||||||||||||
Sende Mausklick |
Das Attribut Sende Mausclick verschickt bei Yes die X- und Y-Position eines Mausklicks im Panel auf Datenpunktelemente des jeweiligen UI-Managers. Dabei wird neben der X- und Y-Koordinate auch zugehöriges Modul und Panel im Datenpunkt gespeichert. Damit können z.B. die Koordinaten des letzten Mausklicks abgefragt werden. Default: No. |
|||||||||||||||
Sprachumschaltung nur neu zeichnen |
Sprachumschaltung nur neu zeichnen, TRUE: Die Umschaltung wird nur durch "Neuzeichnen" aller statischen Paneltexte und Ausführen des "LangChanged" durchgeführt. Verwenden Sie diese Option bei neuen Panels, wo keine "Initialize"-Skripts definiert sind, mit denen Texte auf Objekte übertragen werden. Default: Sprachumschaltung nur neu zeichnen, FALSE: zusätzlich werden alle Childpanels geschlossen, alle CTRL-Skripts gestoppt (auch das Skript mit der switchLang()-Funktion) und alle "Initialize" ausgeführt. Diese Option ist defaultmäßig aktiviert und sollte bei älteren Panels aktiviert werden, die beim Aufschalten Texte an Objekte in den Panels übergeben. |
|||||||||||||||
Start Zoomfaktor | Zoom-faktor, der beim Aufschalten vom Panel verwendet wird. | |||||||||||||||
Start Zoompunkt, X, Y |
X-Position eines Panel beim Aufschalten des Panels. Y-Position eines Panels beim Aufschalten des Panels. |
|||||||||||||||
Starte Init-Script in Ref |
Aufschaltenskript starten Löst EventInitialize und EventTerminate aus, wenn Panel als Referenz verwendet wird. Default: Yes. |
|||||||||||||||
startInit-ScriptModus |
Start-Modus von Scripts Das Attribut "startInit-Script Modus" wirkt sich auf alle Shapes des eigenen Panel aus. Werden in einem Panel auch Referenzen verwendet, wird das Startverhalten der Shapes innerhalb der Referenz durch dessen eigenes "startInit-ScriptModus"-Attribut beeinflusst. All Objects: (Default): Beim Aufschalten werden alle "Initialize"-Skripts gestartet. Ob das Objekt innerhalb des Bildschirmes oder in einer sichtbaren Ebene liegt, wird hierbei nicht berücksichtigt. Visible Objects: Beim Aufschalten des Panels werden nur die Scripts von Objekten, die sich innerhalb des Bildschirmes und auf einer sichtbaren Ebene befinden, ausgeführt. Der weitere Panelbereich wird erst zur Laufzeit durch Scrollen nach links/recht/oben/unten mit seinen Objekten aufgebaut, unter Berücksichtigung der Cluttering-Einstellungen für die verschiedenen Ebenen. Die auf Objekte parametrierten "Initialize"-Skripts werden erst dann ausgeführt, wenn das Objekt innerhalb des Bildschirmes und in einer sichtbaren Ebene liegt. Siehe auch Kapitel: Cluttering/Decluttering. Innerhalb der Referenzen werden aber auch die Scripts von Shapes, die noch nicht sichtbar sind, gestartet. D.h. wenn das startInit-ScriptModus einer Referenz = All Objects ist und vom Main-Panel startInit-ScriptModus = Visible Objects ist, werden die Scripts aller sichtbaren Referenzen gestartet. Innerhalb der Referenzen werden aber auch die Scripts von Objekten, die noch nicht sichtbar sind, gestartet. Dieses Verhalten wird Ihnen anhand der folgenden Tabelle verdeutlicht:
|
|||||||||||||||
initAllShapes | Die nur schreibende Eigenschaft erlaubt es, die Initialisierungsskripte für alle Shapes des Panels auszulösen (sofern sie nicht bereits gestartet wurden). Dies gilt auch dann, wenn das Shape eigentlich nicht sichtbar ist und der startInitScriptMode auf "nur sichtbare Shapes" gesetzt wurde. | |||||||||||||||
updatesEnabled | Erlaubt es die grafische Aktualisierung des Panels zu deaktivieren, um so eine flüssiges Aufbauen der Panelinhalte zu ermöglichen. (Verfügbar mittel CTRL) - self.updatesEnabled(bool) | |||||||||||||||
windowFlags |
Liefert oder setzt spezifische Flags die das Verhalten des Panels definieren. Mehrere Flags können unter Verwendung des Pipe Zeichens ("|") angegeben werden. (Verfügbar via CTRL) - windowFlags(string) Folgende Flags sind verfügbar:
|
|||||||||||||||
windowFrameGeometry |
Dieses Attribut beinhaltet die Geometrie des Fensters inklusive des Rahmens. Kann verwendet werden um das Fenster zu bewegen oder in der Größe zu verändern. (Verfügbar via CTRL) - windowFrameGeometry(x, y, w, h). Hinweis
|
|||||||||||||||
windowGeometry |
Dieses Attribut beinhaltet die Geometrie des Fensters exklusive des Rahmens. Kann verwendet werden um das Fenster zu bewegen oder in der Größe zu verändern. (Verfügbar via CTRL) - windowFrameGeometry(x, y, w, h). Hinweis
|
|||||||||||||||
windowOpacity |
Dieses Attribut erlaubt es die Deckkraft des kompletten top-level Fensters (Modul oder Child Panel) festzulegen. Der gültige Wertebereich liegt zwischen 0.0 (komplett transparent) und 1.0 (komplett undurchlässig). Der Standardwert ist 1.0. (Verfügbar via CTRL) - windowOpacity(float) Hinweis
|
|||||||||||||||
windowState |
Dieses Attribut erlaubt es den Zustand des Fensters festzulegen. (Verfügbar via CTRL) - windowState(string) Folgende Zustände können gesetzt werden:
Hinweis
|
|||||||||||||||
windowVisible |
Das Attribut erlaubt das Setzen oder Lesen der Sichtbarkeit des Panels (verfügbar via CTRL) - windowVisible(bool) Hinweis Dieses Attribut ist nicht verfügbar wenn das Panel innerhalb eines Embedded Modules verwendet wird. |
|||||||||||||||
writeToFile |
Das Attribut erlaubt es ein Panel per Skript zu speichern. (Verfügbar via CTRL) - writeToFile(string fileName, string format) Hinweise
|
|||||||||||||||
Modulgröße wiederherstellen |
Wenn aktiviert (=TRUE) wird die Größe des Moduls nicht an das Panel angepasst sondern die Dimensionen aus der PVSS00ui.ini werden herangezogen (falls verfügbar) Die Eigenschaft muss für das Panel gesetzt werden in welchem die neuen Module aufgeschalten werden (z.B. mittels moduleAddDockModule()). |
Wenn ein Panel mit einem transparentem Hintergrundbild in mehreren nachfolgenden Modul VISION-Modulen aufgeschaltet wird, kann es vorkommen, dass das Hintergrundbild entweder schwarz oder gar nicht dargestellt wird.
Wenn man in einem Panel mit der Defaulteinstellung "Im Speicher halten" Referenzen verwendet und diese ändert, so wirkt sich die Änderung erst nach einem UI-Neustart aus.
Events (Ereignisse)
Die folgenden Events (Ereignisse) sind für Panels vorhanden:
Events | Aktion |
---|---|
Initialize | Beim Aufschalten von einem Panel. |
Clicked |
Der Klick kann mit der Linken oder anderen verfügbaren Maustasten ausgelöst werden. Die Ausnahme bildet hierbei der Rechtsklick, für welchen ein eigenes Ereignis existiert. Die verwendete Maustaste wird in dem Mapping "event", welches an das Script weitergegeben wird, spezifiziert. Hinweis: Um die mittlere Maustaste zum Starten von Skripten zu verwenden, muss zuvor das Panning mit dem Config-Eintrag [ui] middleMousePanning deaktiviert werden. |
Close | Beim Klick auf "X" (Schließen) (oder Option Close Panel im Panel-Menü) in Panels kann damit ein Skript aufgerufen werden, dass ein Sichern der Daten ermöglicht. Das Skript wird ausgeführt, danach aber weder Panel noch Modul geschlossen wird. Wenn man Panel und Modul schließen will, muss man im EventClose-Skript ein PanelOff ("Panelname") aufrufen. "Close" ist hauptsächlich dafür gedacht, dass man nicht unabsichtlich ein Modul abschießt, sondern evtl. durch ein "wollen Sie wirklich"- z.B. durch ein Childpanel gewarnt wird. |
DoubleClicked | Bei Doppelklick |
DragDrop | Das Ereignis wird gestartet, wenn der Benutzer die Information droppt und das Panel informiert das System über dropAccept() die dropped Information zu akzeptieren. Die übergebenen Argumente sind die gleichen wie in dem DragEnter-Ereignis. Siehe unterhalb. |
DragEnter |
Dieses Ereignis wird nur dann gestartet, wenn das Panel Drops akzeptiert und nicht deaktiviert ist. Das Panel muss entscheiden, ob die bereit ist, dropped-Information zu akzeptieren. Wenn ja, muss das Panel die CTRL-Funktion aufrufen:
Für mehr Information siehe Drag & Drop zur Laufzeit. |
GestureTriggered |
Dieses Ereignis wird durch ein Swipe-Gesture (Bewegung mit einem oder zwei Fingern) gestartet. Das Ereignis funktioniert nur, wenn das Panel im Modul nicht größer als das Darstellungsfeld ist (sodass Scrollbars nicht benötigt werden und Sie das komplette Panel sehen). Sonst wird durch die Swipe-Bewegung Panning ausgelöst. Panning löst jedoch nicht das Gesture-Script aus. Das Ereignis steht auch für eingebettete Module zur Verfügung. Wenn Sie das Ereignis für beide, das Panel und für das eingebettete Modul in einem Panel verwenden, wird das Ereignis des eingebetteten Moduls ausgelöst, wenn Sie das Modul swipen. Wenn Sie das Panel swipen (außerhalb des eingebetteten Moduls) wird das Ereignis des Panels ausgelöst. Wenn das eingebettete Modul auch ein Panel und das Ereignis "GestureTriggered" enthält, werden beide das Ereignis des eingebetteten Moduls und des Panels das im Modul geladen wird, ausgelöst. Das Script enthält folgende Argumente: main(string type, mapping data) type = "swipe" Das Mapping data enthält die folgenden key/value Paare:
Die Werte für "horizontal" und "vertical" werden intern berechnet: Wenn der Finger z.B. rechts und leicht nach oben bewegt wird, sind die Werte folgende: horizontal: "right", vertical: "none" type = "scrollToPanel" Das Mapping data enthält folgende key/value Paare:
|
LangChanged | Wenn die Sprache zur Laufzeit verändert wird |
RightMousePressed | Rechtsklick |
ScopeLib |
In diesem Skript im Attribut-Editor können Sie Funktionen und (Skript-globale) Variablen deklarieren, welche von allen Objekten innerhalb des Panels (mit Ausnahme von Panel-Referenzen) verwendet werden können, als seien sie in den jeweiligen einzelnen Skripts deklariert worden. Panel-globale Variablen sind wirklich nur einmal vorhanden und können von allen Skripts verändert werden. Hinweis Die Initialisierung der ScopeLib innerhalb des GEDIs erfolgt nur wenn zumindest ein #property definiert wurde. |
Terminate |
Beim Schließen mit PanelOff() etc. erfolgt ein sofortiges Schließen. Es ist nur ein letztes dpSet() möglich beispielsweise, um eine Sperre aufzuheben. Der Aufruf der Funktion LogoutDialog() löst das "Terminate" Event ebenfalls aus. |
Zoom |
Beim Zoomen. "Zoom" ist nicht für Standardpanels der Version möglich. Syntax: main (string moduleName, string panelName) |
Panel-Referenzen bleiben in sich geschlossen, d.h. wenn eine Referenz zweimal vorkommt, gibt es auch deren Variablen zweimal.