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

UI\Controls\Button

Klasse

Repräsentiert eine beschriftete, klickbare Schaltfläche innerhalb einer UI\Window-basierten Anwendung.

seit PHP 0.9.9 Kategorie: misc

Signatur

class UI\Controls\Button extends UI\Control

Beschreibung

UI\Controls\Button ist eine einfache Schaltfläche mit einer Textbeschriftung, die in grafischen Benutzeroberflächen eingesetzt wird, die mit der PHP-Erweiterung ui (libui-Binding) erstellt werden. Sie erbt von UI\Control und kann in Container-Elemente wie UI\Controls\Box oder UI\Controls\Form eingebettet werden.

Über die Methode setTitle() lässt sich die Beschriftung der Schaltfläche jederzeit ändern, während getTitle() den aktuellen Text zurückgibt. Mit onClick() wird ein Callback registriert, der bei jedem Klick auf die Schaltfläche aufgerufen wird – vergleichbar mit einem Event-Listener.

Diese Klasse eignet sich überall dort, wo Benutzerinteraktionen ausgelöst werden sollen, z. B. zum Absenden von Formularen, Bestätigen von Dialogen oder Starten/Stoppen von Vorgängen innerhalb einer Desktop-GUI-Anwendung.

Hinweis: Die ui-Erweiterung ist eine PECL-Erweiterung und nicht Teil des PHP-Standard-Distributions. Sie muss separat installiert und ist primär für CLI-Anwendungen mit GUI-Bedarf gedacht.

Parameter

Name Typ Default Beschreibung
$title Pflicht string Der Text, der auf der Schaltfläche angezeigt wird. Kann nach der Instanziierung über setTitle() geändert werden.

Rückgabewert

Typ

Beispiele

Einfache Schaltfläche mit Click-Handler

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

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

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

$button = new Button('Klick mich!');
$button->onClick(function () use ($button) {
    $button->setTitle('Geklickt!');
});

$box->append($button);
$window->add($box);
$window->show();

UI\main();

Schaltfläche mit dynamischer Beschriftung und Zähler

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

$window = new Window('Zähler', 300, 100, false);
$window->setMargin(true);

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

$count = 0;
$button = new Button('Klicks: 0');
$button->onClick(function () use ($button, &$count) {
    $count++;
    $button->setTitle('Klicks: ' . $count);
});

$box->append($button);
$window->add($box);
$window->show();

UI\main();

// Wichtig · Fallstricke

Die ui-Erweiterung befindet sich seit Jahren im Alpha/Beta-Status und ist nicht für den Produktiveinsatz in kritischen Anwendungen vorgesehen. Die API kann sich zwischen Versionen ändern. Vor der Nutzung sollte geprüft werden, ob die Erweiterung mit der eingesetzten PHP-Version kompatibel ist.

Der mit onClick() registrierte Callback läuft im Hauptthread der UI-Schleife. Blockierende Operationen innerhalb des Callbacks frieren die gesamte Benutzeroberfläche ein – aufwändige Verarbeitungen sollten daher vermieden oder in einen separaten Thread ausgelagert werden.