TypePHP\Qt
Guide
Widgets
Advanced
Reference
FAQ
  • English
  • 简体中文
GitHub
Guide
Widgets
Advanced
Reference
FAQ
  • English
  • 简体中文
GitHub

TypePHP\Qt

Build native desktop apps with TypePHP (AOT) + Qt 6 — describe the UI as a PHP array, keep every decision in PHP

Get StartedWidget Catalog

Declarative UI

Describe the widget tree as a PHP array; the C++ side diffs it by id. Cursor position, table selection and scroll offset survive every re-render.

State-driven

Event handlers only change state. The builder registered with view() re-describes the UI each frame, making the widget layer a pure function of state.

PHP owns the loop

PHP drives the Qt event pump, so all business logic stays in PHP and unit-tests with a plain PHP interpreter — no Qt, no compiler.

Source-inlined bridge

The bridge C++ compiles as part of your app. No prebuilt binary, so it can never drift from your Qt or PHPX version.

One-command packaging

qtphp package assembles a self-contained bundle and verifies it — dist/ on Windows, a .app on macOS, an ldd closure on Linux.

Headless verification

--shot renders a PNG, --selftest fires every event, --difftest covers table/tree diff boundaries. No display needed in CI.

MIT Licensed | Copyright © yangweijie