Загружает форму *.ui.

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

object setupUi(string $path, object &$parent);

Загружает ui-файл, расположенный по адресу $path и создаёт новый виджет. Если $parent является наследником от любого QWidget-класса, то $parent будет передан в качестве родителя для созданного виджета. Так же у родителя объявляется новый публичный параметр ui, содержащий ссылки на виджеты, расположенные на форме. Ссылки формируются в соответствии с именами объектов, например, кнопка QPushButton с именем pushButton1 будет доступна по адресу $this->ui->pushButton1.

Функция возвращает ссылку на загруженный объект формы, который может быть экземпляром QWidget, QMainWindow, QDialog и др., в соответствии с конфигурацией ui-файла.

Примеры загрузки ui-файла из ресурсов:

class MyMainWindow extends QWidget {
    public function __construct($parent = null) {
        parent::__construct($parent);
        setupUi(":/forms/myform.ui", $this);
        
        $this->ui->pushButton->text = "Super Button";
    }
}
class MyMainWindow {
    public function __construct($parent = null) {
        parent::__construct($parent);
        
        $form = setupUi(":/forms/myform.ui", $this);
        $form->resize(200, 200);
    }
}

Если $parent является наследником от любого QWidget-класса, то функция setupUi автоматически соединяет сигналы объектов формы с соответствующими слотами родителя, производя поиск по шаблону on_<objectName>_<signalName>(), где:

  • objectName - имя объекта;
  • signalName - имя сигнала.

Сигналы соединяются со слотами только в том случае, если слот имеет Doc-блок с описанием параметров слота, например:

/** @slot on_pushButton_clicked(object) */
public function on_pushButton_clicked($button) {
    echo "clicked";
}

В данном примере сигнал clicked кнопки pushButton будет соединён со слотом on_pushButton_clicked.

comments powered by HyperComments