Библиотека PHPQt5
Создание GUI приложений на PHP с использованием инструментария Qt.
О проекте PHPQt5
PHPQt5 - это расширение языка программирования PHP, обеспечивающее объектно-ориентированный интерфейс к классам Qt. С помощью PHPQt5 можно разрабатывать оконные приложения для Windows и Linux на языке программирования PHP.
С 28.07.2015 расширение вошло в состав библиотеки PQEngine, реализующей интерфейс для исполнения php-скриптов.
Для быстрого развёртывания рабочего приложения разработчикам предлагается использовать утилиту для сборки проектов PQBuilder комплект средств разработки PHPQt5 SDK Tools.
Программа Hello, World!
/* PQEngine 0.6 или более поздняя версия */
$app = new QApplication($argc, $argv);
$widget = new QWidget;
$widget->layout = new QVBoxLayout;
$button = new QPushButton(new QIcon(":/assets/info.png"), "Нажми меня", $widget);
$button->setIconSize(new QSize(24, 24));
$button->onClicked = function() use($widget) {
$messageBox = new QMessageBox(QMessageBox::Information,
$widget->windowTitle,
"Нажали-таки!");
$messageBox->addButton("Ok ;-)", QMessageBox::AcceptRole);
$answer = $messageBox->exec();
};
$widget->layout->addWidget($button);
$widget->windowTitle = "Привет, мир!";
$widget->resize(250, 100);
$widget->show();
return $app->exec();

Программа Hello, World! создаёт окно с заголовком «Привет, мир!», содержащее кнопку с изображением, загруженным из ресурсов приложения, и с надписью «Нажми меня». Нажатие на кнопку приводит к созданию модального информационного окна с текстом «Нажали-таки!»
Поддержка событий (events)
# QCloseEvent
class Widget extends QWidget {
/** @override closeEvent */
public function closeEvent($event) {
$reply = QMessageBox::question($this, "Закрытие", "Вы действительно хотите закрыть приложение?",
QMessageBox::Yes|QMessageBox::No);
if ($reply == QMessageBox::Yes) {
parent::closeEvent($event);
}
else $event->ignore();
}
}
Перед закрытием окна будет открыто диалоговое окно, запрашивающее подтверждение закрытия. В зависимости от выбора пользователя, окно либо будет закрыто, либо событие проигнорируется.

Поддержка UI-файлов, созданных в программе Qt Designer
class Widget extends QWidget {
public function __construct($parent = null) {
parent::__construct($parent);
$this->ui = setupUi($this);
$this->pushButton->text = "Нажми меня!";
}
/** @slot on_pushButton_clicked(object) */
public function on_pushButton_clicked($sender)
{
echo "Clicked!";
}
}
В приведённом примере функция setupUi() загружает связанный с исходным php-файлом пользовательский интерфейс, спроектированный в программе QtDesigner. В переменную $ui при этом будут записаны ссылки на объекты формы в соответствии с их именами. Так же поддерживается автоматическое соединение слотов (connectSlotsByName) по имени объектов, т.е. при нажатии на кнопку pushButton будет выведено сообщение "Clicked!".
Новости
3-го марта 2017 года был анонсирован выпуск комплекта средств разработки PHPQt5 для IDE QtCreator.
С этого момента утилита PQBuilder считается устаревшей и обновляться более не будет.
13.03.2017
Движок PQEngine переведён на собственную мета-объектную систему PlastiQ.
03.08.2016
Движок PQEngine переведён обратно на UTF8!
Будьте внимательны при работе с строковыми параметрами в Window.
17.03.2016
Движок PQEngine переведён на PHP7!
22.02.2016
Исходный код движка PQEngine выложен на GitHub
22.11.2015
ВАЖНОЕ ОБНОВЛЕНИЕ:
В связи с проблемами совместимости с библиотекой php5ts.dll в Windows,
новые версии PQEngine будут работать в кодировке CP1251!
27.08.2015
Библиотека PHPQt5 перешла в статус альфа-тестирования, а дальнейшие её обновления будут происходить только в составе движка PQEngine. Движок PQEngine будет входит в состав инструментов разработки PQPack, альфа-версия которого доступна по адресу: http://wxmaper.ru/phpqt5/pqpack.7z
28.07.2015
Сайт запущен
01.07.2015