Использование

bool connect ( QObject $sender, SIGNAL , object $receiver, SLOT )

При соединении сигнала Qt-объекта с функцией PHP-обекта, необходимо помнить, что первым аргументом (независимо от количества аргументов, передаваемых сигналом) в функцию всегда передается ссылка на объект, пославший сигнал. Это значит что в функции, соединяемой с сигналом, количество аргументов должно быть на 1 больше. Однако функция SLOT('slotname()') должна принимать сигнатуру без учёта этого аргумента. Например, если сигнал передает 1 аргумент с типом bool, код для соединения будет таким:

connect( $QObject_sender, SIGNAL('someSignal(bool)'), $PHP_receiver, SLOT('someSlot(bool)') );

а функция такой:

public function someSlot( $QObject_sender, $bool_value ) { /* ... */ }

Примеры

class MyWindow extends QWidget {
  public function __construct() {
    parent::__construct();

    $button = new QPushButton($this);
    $button->text = 'Click me!';

    connect($button, SIGNAL('clicked()'), $this, SLOT('buttonClicked()'));
  }

  public function buttonClicked($sender) {
    echo 'Clicked!';
  }
}

$window = new MyWindow;
$window->show();
comments powered by HyperComments