Start · Sprachen · PHP · Referenz · UI\Controls\Radio

UI\Controls\Radio

Klasse

Stellt ein Radio-Button-Steuerelement für native GUI-Anwendungen bereit, ähnlich dem HTML-<code>&lt;input type="radio"&gt;</code>.

seit PHP 0.9.9 Kategorie: misc

Signatur

class UI\Controls\Radio extends UI\Control

Beschreibung

UI\Controls\Radio ist Teil der PHP-UI-Erweiterung (php-ui) und ermöglicht die Darstellung einer Gruppe von Radio-Buttons in nativen Desktop-Anwendungen. Radio-Buttons sind Optionsschalter, bei denen jeweils nur eine Option aus einer Gruppe ausgewählt werden kann – genau wie im HTML bekannte <input type="radio">-Felder.

Das Steuerelement wird typischerweise innerhalb eines UI\Controls\Group- oder UI\Controls\Box-Containers platziert, um mehrere Optionen strukturiert darzustellen. Die einzelnen Auswahlmöglichkeiten werden über die Methode append() hinzugefügt.

Über getSelected() und setSelected() lässt sich der aktuell ausgewählte Eintrag abfragen bzw. programmatisch setzen. Mithilfe der Methode onSelected() kann eine Callback-Funktion registriert werden, die bei jeder Änderung der Auswahl durch den Benutzer ausgeführt wird.

Die Klasse eignet sich besonders dann, wenn Endnutzer aus einer festen Menge von Optionen genau eine auswählen sollen – beispielsweise bei Einstellungen, Konfigurationsassistenten oder Formularen in nativen GUI-Anwendungen.

Beispiele

Radio-Buttons erstellen und Auswahl abfragen

<?php
use UI\Window;
use UI\Controls\Box;
use UI\Controls\Radio;
use UI\Controls\Button;

$window = new Window('Radio-Beispiel', 300, 200, false);
$window->setMargin(true);

$box = new Box(Box::Vertical);
$box->setPadded(true);
$window->add($box);

$radio = new Radio();
$radio->append('Option A');
$radio->append('Option B');
$radio->append('Option C');
$radio->setSelected(0); // Erste Option vorauswählen

$box->append($radio);

$button = new Button('Auswahl anzeigen');
$button->onClick(function() use ($radio, $window) {
    $index = $radio->getSelected();
    // Index der ausgewählten Option ausgeben
    echo 'Ausgewählt: Option ' . chr(65 + $index) . PHP_EOL;
});
$box->append($button);

$window->show();
UI\run();
Ausgewählt: Option A

Callback bei Änderung der Auswahl registrieren

<?php
use UI\Window;
use UI\Controls\Box;
use UI\Controls\Radio;

$window = new Window('Radio-Callback', 300, 150, false);
$window->setMargin(true);

$box = new Box(Box::Vertical);
$box->setPadded(true);
$window->add($box);

$radio = new Radio();
$radio->append('Deutsch');
$radio->append('Englisch');
$radio->append('Französisch');

$radio->onSelected(function() use ($radio) {
    $selected = $radio->getSelected();
    $sprachen = ['Deutsch', 'Englisch', 'Französisch'];
    echo 'Neue Sprache gewählt: ' . $sprachen[$selected] . PHP_EOL;
});

$box->append($radio);

$window->show();
UI\run();
Neue Sprache gewählt: Englisch

// Wichtig · Fallstricke

Erweiterung erforderlich: Die Klasse UI\Controls\Radio ist Teil der experimentellen php-ui-Erweiterung und steht nicht im PHP-Standardumfang zur Verfügung. Die Erweiterung muss separat kompiliert oder installiert werden.

Gruppenlogik: Ein einzelnes Radio-Steuerelement verwaltet intern alle mit append() hinzugefügten Optionen als Gruppe – es ist kein separates Gruppen-Objekt notwendig, um die gegenseitige Exklusivität sicherzustellen.

Indizes: Die Optionen sind nullbasiert indiziert. getSelected() gibt -1 zurück, wenn keine Option ausgewählt ist.