PHP-FFI 绑定 libui,实现跨平台 GUI 编程

php-libui

⭐ PHP-FFI 绑定 libui,实现跨平台 GUI 编程。

libui 库是一个跨平台的 GUI 库,功能强大。

文档后续会持续更新,欢迎star,issue,pr~

文档站点

依赖

  • PHP 8.2+

  • PHP-FFI 扩展

平台

  • Windows Vista SP2 平台更新或更高版本 x86_64

  • macOS OS X 10.8 或更高版本 x86_64

  • Linux GTK+ 3.10 或更高版本 x86_64

安装

composer require kingbes/libui

示例


<?php
require dirname(__DIR__) . "/vendor/autoload.php";
use Kingbes\Libui\App; // 应用
use Kingbes\Libui\Window; // 窗口
use Kingbes\Libui\Control; // 控件
use Kingbes\Libui\Box; // 容器
use Kingbes\Libui\Button; // 按钮
// 初始化应用
App::init();
// 创建窗口
$window = Window::create("窗口", 640, 480, 0);
// 窗口设置边框
Window::setMargined($window, true);
// 窗口关闭事件
Window::onClosing($window, function ($window) {
    echo "窗口关闭";
    // 退出应用
    App::quit();
    // 返回1:奏效,返回0:不奏效
    return 1;
});
// 创建水平容器
$box = Box::newVerticalBox();
Box::setPadded($box, true); // 设置边距
Window::setChild($window, $box); // 设置窗口子元素
// 创建按钮
$btn01 = Button::create("按钮");
// 追加按钮到容器
Box::append($box, $btn01, false);
// 按钮点击事件
Button::onClicked($btn01, function ($btn01) use ($window) {
    echo "按钮点击\n";
    Window::msgBox($window, "提示", "世界上最好的语言PHP~");
});
// 显示控件
Control::show($window);
// 主循环
App::main();

随便问一下

这个社区还活跃吗?怎么以前的文章没了?

放弃总是很容易,但坚持是痛苦的!
讨论数量: 6

这个咋打包 exe

1天前 评论
Kingbes (楼主) 1天前
liaosp (作者) 1天前
Kingbes (楼主) 1天前

bosonphp.com/ 和这个类似吗

1天前 评论
Kingbes (楼主) 1天前

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!