Komponenten

Components sind interaktive Widgets, die es Benutzern ermöglichen, Parameter zu konfigurieren oder Ergebnisse von Ihrem benutzerdefinierten Widget zu sehen.

Komponenten werden durch Schlüsselwortargumente erstellt.

Generische Argumente

Generische Argumente gelten für alle benutzerdefinierten Komponenten. Sie können sie als Schlüsselwortargumente an Konstruktoren übergeben.

tooltip: str = ''

Text Input

Erlaubt es Benutzern, Text/Zahl über eine einzelne Zeile einzugeben.

Konstruktor:

TextInput

Schlüsselwortargumente:

text: str = '5' : Standardwert des Text Eingabe

place_holder: str = '' : Text, der angezeigt wird, wenn das Text Input leer ist.

Attribute-Methoden

text -> str : Empfängt den aktuellen Text, der im Text Input geschrieben ist.

Beispiel:

class Example_Block(Block):
    ...
    def init(self):
        ...
        self.param['text1'] = TextInput(text= '5', 
                                        place_holder='Geben Sie eine Zahl ein', 
                                        tooltip='Definiert Konstanten')
    
    def run(self):
        ...
        raw_constant: str = self.param['text1'].text
        constant: int = int(raw_constant)  # in Integer umwandeln
        ... 

Dropdown-Listen ermöglichen es Benutzern, eine Option aus einer bereitgestellten Liste von Texten auszuwählen.

Konstruktor:

DropDown

Schlüsselwortargumente:

items: list[str, ...] = ['item1', 'item2', 'item3']: Liste der Texte, die in der Dropdown-Liste angezeigt werden.

Attribute-Methoden:

selected_item -> str: Gibt den Text des ausgewählten Items zurück. Gibt '' zurück, wenn kein Text verfügbar ist.

selected_index -> int: Gibt das ausgewählte Item als Integer zurück. Gibt 0 zurück, wenn kein Item verfügbar ist.

Beispiel:

class Example_Block(Block):
    ...
    def init(self):
        ...
        self.param['drop_down'] = DropDown(items=['Methode 1', 'Methode 2', 'Methode 3'], 
                                        tooltip='Wählen Sie eine Methode')
    
    def run(self):
        ...
        raw_constant: int = self.param['drop_down'].selected_index()
        if raw_constant == 0:
            ... 

Label

Labels sind einfache, textbasierte Komponenten, die statisch oder dynamisch Text auf Ihrem benutzerdefinierten Block anzeigen.

Sie werden auch verwendet, um Informationen über interaktive Komponenten bereitzustellen:

Konstruktor:

Label

Schlüsselwortargumente:

text: str = '': Text, der auf der Dropdown-Liste angezeigt wird.

Attribute-Methoden:

set_text(text: str): Setzt den Text des Labels.

Beispiel:

class Example_Block(Block):
    ...
    def init(self):
        ...
        self.param['label'] = Label(text='Ergebnis ist: Nicht festgelegt', 
                                        tooltip='Zeigt den Mittelwert an')
    
    def run(self):
        ...
        self.param['label'].set_text(f'Ergebnis ist: {n}')
        ... 

Slider

Beschränkt die Benutzereingabe auf einen Zahlenbereich.

Konstruktor:

Slider

Schlüsselwortargumente:

min: int = -5: Mindestwert, der auf dem Schieberegler angezeigt wird.

max: int = 5: Höchstwert.

val: int = 3: Standardwert.

Attribute-Methoden:

value -> int: Aktueller Wert des Schiebereglers.

Beispiel:

class Example_Block(Block):
    ...
    def init(self):
        ...
        self.param['slider'] = Slider(min=-5, max=5, val=3)
    
    def run(self):
        ...
        threshold: int = self.param['slider'].value
        ... 

Slider Labeled

Das Gleiche wie Slider, aber mit einem Label, das automatisch anzeigt, welcher Wert in der Komponente angezeigt wird.

Konstruktor:

SliderLabeled

Schlüsselwortargumente:

min: int = -5: Mindestwert, der auf dem Schieberegler angezeigt wird.

max: int = 5: Höchstwert.

val: int = 3: Standardwert.

label: str ="Wert": Labeltext, der angezeigt werden soll.

multiplier: float | int = 1: Multipliziert den angezeigten Wert vor der Addition. Wenn Sie dies mit add verwenden, können Sie ungerade Zahlen anzeigen, wenn Sie möchten.

add: float | int = 0: Hinzugefügter Wert nach der Multiplikation.

Attribute-Methoden:

value -> int: Aktueller Rohwert des Schiebereglers.

modifiedValue -> int | float: Aktueller modifizierter Wert des Schiebereglers.

Beispiel:

class Example_Block(Block):
    ...
    def init(self):
        ...
        self.param['threshold_odd'] = SliderLabeled(min= -5, max= 5, val= 3, label="Wert", multiplier=2, add=-1)
    
    def run(self):
        ...
        threshold_odd: int = self.param['threshold_odd'].modifiedValue
        ... 

CheckBox

Erlaubt die Eingabe des logischen Zustands.

Konstruktor:

CheckBox

Schlüsselwortargumente:

text: str = '': Text, der neben der Kontrollkästchen angezeigt wird.

Attribute-Methoden:

is_checked -> str: Setzt den Text des Labels.

Beispiel:

class Example_Block(Block):
    ...
    def init(self):
        ...
        self.param['gray_mode'] = CheckBox(text=': Grauer Modus')
    
    def run(self):
        ...
        flag_gray: bool = self.param['gray_mode'].is_checked
        ... 

Button

Löst ein Ereignis in Ihrem Skript bei einem Mausklick aus. Diese Komponente ist auch sehr nützlich für das Ressourcenmanagement für benutzerdefinierte Blöcke in Ihrem Szenario.

Konstruktor:

Button

Schlüsselwortargumente:

text: str = '': Text, der neben der Schaltfläche angezeigt wird.

Attribute-Methoden:

set_clicked_callback(callback: Callable): Setzt die Rückruffunktion, die jedes Mal ausgelöst wird, wenn die Schaltfläche angeklickt wird.

Die Verwendung von set_clicked_callback wird immer im init-Teil Ihres benutzerdefinierten Blockskripts verwendet.

Beispiel:

...
class Example_Block(Block):
    ...
    file_path: str = ''
    def init(self):
        ...
        self.param['Choose File'] = Button(text= 'Datei auswählen')
        self.param['Choose File'].set_clicked_callback(load_image)
    
    def load_image(self):
        path = QAFileDialog.getOpenFileName(caption='Bild laden', 
                                        directory='C:/Images', 
                                        filter='Bilddateien (*.png *.jpg *.bmp)')
        self.file_path = self.register_resource('image-path', path)
        
    def run(self):
        image_path = self.get_resource('image-path')
    

Das obige Beispiel nutzt Rückrufe mit register_resource und get_resource.

Image

Konstruktor:

Image

Schlüsselwortargumente:

fixed_width: int = 80: Bildhöhe, am besten verwendet mit Block.width

fixed_height: int = 80: Bildbreite, am besten verwendet mit Block.height

Attribute-Methoden:

update(img: npt.NDArray[np.uint8]): Aktualisiert das angezeigte Bild mit drei oder einer Dimension.

Beispiel:

class Example_Block(Block):
    def init(self):
        ...
        self.param['Result'] = Image(fixed_width=self.width-40,  
					     fixed_height=self.height-80)

    def run(self):
        ...
        self.param['Result'].update(np.zeros((60, 60, 3)))
        ...

Table

Erlaubt die Auswahl mehrerer Elemente/modi gleichzeitig.

Konstruktor:

Table

Schlüsselwortargumente:

items: list[str, ...] = ['item1', 'item2', 'item3']: Liste der Texte, die in der Tabellenliste angezeigt werden.

Attribute-Methoden:

items -> list[str, ...]: Gibt die Liste aller Elemente zurück.

selected_items -> list[str, ...]: Gibt die Liste der ausgewählten Elemente zurück.

set_items(items: list[str, ...]): Setzt die Elementliste.

Beispiel:

class Example_Block(Block):
    ...
    def init(self):
        ...
        self.param['Detection List'] = Table(items=['Mensch', 'Katze', 'Hund'])

    def run(self):
        ...
        detection_list: list[str, ...] = self.param['Detection List'].selected_items()
        ...

Last updated

Was this helpful?