Bileşenler

Bileşenler, kullanıcıların parametreleri yapılandırmasına veya özelleştirilmiş widget'ınızdan sonuçları görmesine olanak tanıyan etkileşimli widget'lardır.

Bileşenler, anahtar kelime argümanları ile oluşturulmuştur.

Genel Argümanlar

Genel argümanlar, tüm özel bileşenler için geçerlidir. Bunları yapıcıya anahtar kelime argümanları olarak sağlayabilirsiniz.

tooltip: str = ''

Metin Girişi

Kullanıcıların tek bir satır üzerinden metin/sayı girmesine olanak tanır.

Yapıcı:

TextInput

Anahtar Kelime Argümanları:

text: str = '5' : Metin Girişi'nin varsayılan değeri

place_holder: str = '' : Metin Girişi boş olduğunda gösterilecek metin.

Öznitelikler-Yöntemler

text -> str : Metin Girişi'nde yazılı olan mevcut metni alır.

Örnek:

class Example_Block(Block):
    ...
    def init(self):
        ...
        self.param['text1'] = TextInput(text= '5', 
                                        place_holder='Bir sayı girin', 
                                        tooltip='Sabit tanımlar')
    
    def run(self):
        ...
        raw_constant: str = self.param['text1'].text
        constant: int = int(raw_constant)  # tamsayıya dönüştürme
        ... 

Açılır listeler, kullanıcıların sağlanan metin listesinden bir seçenek seçmesine olanak tanır.

Yapıcı:

DropDown

Anahtar Kelime Argümanları:

items: list[str, ...] = ['item1', 'item2', 'item3']: Açılır listede gösterilecek metinler listesi.

Öznitelikler-Yöntemler:

selected_item -> str: Seçilen öğe metnini döndürür. Metin yoksa '' döner.

selected_index -> int: Seçilen öğeyi tam sayı olarak döndürür. Öğe yoksa 0 döner.

Örnek:

class Example_Block(Block):
    ...
    def init(self):
        ...
        self.param['drop_down'] = DropDown(items=['Yöntem 1', 'Yöntem 2', 'Yöntem 3'], 
                                        tooltip='Yöntem Seç')
    
    def run(self):
        ...
        raw_constant: int = self.param['drop_down'].selected_index()
        if raw_constant == 0:
            ... 

Etiket

Etiketler, özel bloğunuzda statik veya dinamik metin göstermek için basit metin tabanlı bileşenlerdir.

Ayrıca etkileşimli bileşenler hakkında bilgi vermek için kullanılır:

Yapıcı:

Label

Anahtar Kelime Argümanları:

text: str = '': Açılır listede gösterilecek metinler.

Öznitelikler-Yöntemler:

set_text(text: str): Etiketin metnini ayarlayın.

Örnek:

class Example_Block(Block):
    ...
    def init(self):
        ...
        self.param['label'] = Label(text='Sonuç: Belirlenmedi', 
                                        tooltip='Ortalama değeri gösterir')
    
    def run(self):
        ...
        self.param['label'].set_text(f'Sonuç: {n}')
        ... 

Kaydırıcı

Kullanıcı girişini bir sayı aralığı ile sınırlar.

Yapıcı:

Slider

Anahtar Kelime Argümanları:

min: int = -5: Kaydırıcıda gösterilecek minimum değer.

max: int = 5: Maksimum değer.

val: int = 3: Başlangıç değeri.

Öznitelikler-Yöntemler:

value -> int: Kaydırıcının mevcut değeri.

Örnek:

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
        ... 

Etiketli Kaydırıcı

Kaydırıcı ile aynı, ancak bileşende hangi değerin gösterildiğini otomatik olarak gösteren bir etiket ekler.

Yapıcı:

SliderLabeled

Anahtar Kelime Argümanları:

min: int = -5: Kaydırıcıda gösterilecek minimum değer.

max: int = 5: Maksimum değer.

val: int = 3: Başlangıç değeri.

label: str ="Değer": Gösterilecek etiket metni.

multiplier: float | int = 1: Gösterilen değeri eklemeden önce çarpar. Bunu add ile kullanarak, isterseniz tek sayıları göstermenize olanak tanır.

add: float | int = 0: Çarptıktan sonraki eklenen değer.

Öznitelikler-Yöntemler:

value -> int: Kaydırıcının mevcut ham değeri.

modifiedValue -> int | float: Kaydırıcının mevcut değiştirilmiş değeri.

Örnek:

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

Onay Kutusu

Mantıksal durum girişi sağlar.

Yapıcı:

CheckBox

Anahtar Kelime Argümanları:

text: str = '': Onay kutusunun yanında gösterilecek metin.

Öznitelikler-Yöntemler:

is_checked -> str: Etiketin metnini ayarlayın.

Örnek:

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

Düğme

Fare tıklaması ile script'inizde bir olayı tetikler. Bu bileşen, senaryonuzdaki özel bloklar için kaynak yönetimi açısından da oldukça faydalıdır.

Yapıcı:

Button

Anahtar Kelime Argümanları:

text: str = '': Onay kutusunun yanında gösterilecek metin.

Öznitelikler-Yöntemler:

set_clicked_callback(callback: Callable): Düğmeye her tıklandığında tetiklenecek geri çağırma fonksiyonunu ayarlayın.

set_clicked_callback kullanımı, özel blok script'inizin init bölümünde her zaman yapılır.

Örnek:

...
class Example_Block(Block):
    ...
    file_path: str = ''
    def init(self):
        ...
        self.param['Dosya Seç'] = Button(text= 'Dosya Seç')
        self.param['Dosya Seç'].set_clicked_callback(load_image)
    
    def load_image(self):
        path = QAFileDialog.getOpenFileName(caption='Görüntü Yükle', 
                                        directory='C:/Images', 
                                        filter='Görüntü Dosyaları (*.png *.jpg *.bmp)')
        self.file_path = self.register_resource('image-path', path)
        
    def run(self):
        image_path = self.get_resource('image-path')
    

Yukarıdaki örnek, geri çağırmaları register_resource ve get_resource kullanarak kullanmaktadır.

Görüntü

Yapıcı:

Image

Anahtar Kelime Argümanları:

fixed_width: int = 80: Görüntünün yüksekliği, Block.width ile kullanılmak üzere en iyisidir.

fixed_height: int = 80: Görüntünün genişliği, Block.height ile kullanılmak üzere en iyisidir.

Öznitelikler-Yöntemler:

update(img: npt.NDArray[np.uint8]): Üç veya bir boyutla gösterilen görüntüyü güncelleyin.

Örnek:

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

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

Tablo

Birden fazla öğe/mod seçilmesine olanak tanır.

Yapıcı:

Table

Anahtar Kelime Argümanları:

items: list[str, ...] = ['item1', 'item2', 'item3']: Tablo listesindeki gösterilecek metinlerin listesi.

Öznitelikler-Yöntemler:

items -> list[str, ...]: Tüm öğelerin listesini alın.

selected_items -> list[str, ...]: Seçilen öğelerin listesini alın.

set_items(items: list[str, ...]): Öğeler listesini ayarlayın.

Örnek:

class Example_Block(Block):
    ...
    def init(self):
        ...
        self.param['Tespit Listesi'] = Table(items=['İnsan', 'Kedi', 'Köpek'])

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

Last updated