php7 圖形使用者介面GUI 開發示例
阿新 • • 發佈:2020-02-23
本文例項講述了php7 圖形使用者介面GUI 開發。分享給大家供大家參考,具體如下:
一、下載指定系統擴充套件
http://pecl.php.net/package/ui http://pecl.php.net/package/ui/2.0.0/windows
由於我的系統是64位win10,php版本是7.1,所以選擇7.1 Thread Safe (TS) x64,linux使用者可以自行下載原始碼包,編譯安裝。
解壓php_ui-2.0.0-7.1-ts-vc14-x64.zip,把php_ui.dll複製到你php.ini中extension_dir設定的目錄,把libui.dll和pthreadVC2.dll複製到C:\Windows\System32目錄下。
在php.ini中加入如下:
extension=php_ui.dll
然後重啟服務,phpinfo()檢視,ui擴充套件安裝成功。
二、我們建立一個簡單的計算器
<?php use UI\Window; use UI\Size; use UI\Controls\Entry; use UI\Controls\Label; use UI\Controls\Button; use UI\Controls\Grid; //建立一個視窗 //引數一表示視窗標題 //引數二表示視窗大小 //引數三表示是否顯示選單 $win = new Window('簡單的計算器',new Size(640,480),true); //建立一個文字框 //Entry::Normal 普通單行文字框 //Entry::Password 密碼框 //Entry::Search 搜尋框 $num1 = new Entry(Entry::Normal); $num2 = new Entry(Entry::Normal); $ret = new Entry(Entry::Normal); //建立一個標籤 $lab = new Label('+'); //建立一個按鈕 $btn = new class('計算') extends Button { public function __construct($text) { parent::__construct($text); } protected function onClick() { global $num1,$num2,$ret; $n1 = $num1->getText(); $n2 = $num2->getText(); $ret->setText($n1 + $n2); } }; //建立一個網格 $grid = new Grid(); //把上面的控制元件加入到網格佈局中 $grid->append($num1,1,true,Grid::Center,false,Grid::Center); $grid->append($lab,Grid::Center); $grid->append($num2,2,Grid::Center); $grid->append($btn,3,Grid::Center); $grid->append($ret,4,Grid::Center); //把佈局加入到視窗中 $win->add($grid); //顯示視窗 $win->show(); UI\run();
在控制檯下執行php指令碼
> php index.php
執行結果如下:
三、我們建立一個常用的登錄檔單
<?php use UI\Window; use UI\Size; use UI\Controls\Box; use UI\Controls\Entry; use UI\Controls\Button; use UI\Controls\Form; use UI\Controls\Radio; use UI\Controls\Check; use UI\Controls\Combo; use UI\Controls\MultilineEntry; //建立一個視窗 //引數一表示視窗標題 //引數二表示視窗大小 //引數三表示是否顯示選單 $win = new Window('簡單的計算器',true); //建立一個表單 $frm = new Form(); //使用者名稱 $user = new Entry(Entry::Normal); $frm->append('使用者名稱:',$user,false); //密碼 $pwd = new Entry(Entry::Password); $frm->append('密碼:',$pwd,false); //性別(單選) $sex = new Radio(); $sex->append("男"); $sex->append("女"); $sex->append("未知"); $frm->append('性別:',$sex,false); //愛好(多選) //建立一個盒子,水平排列 $loveBox = new Box(Box::Horizontal); $love1 = new Check('看書'); $love2 = new Check('旅遊'); $love3 = new Check('遊戲'); //把多選控制元件加入盒子中 $loveBox->append($love1); $loveBox->append($love2); $loveBox->append($love3); $frm->append('愛好:',$loveBox,false); //地區(下拉框) $area = new Combo(); $area->append("北京"); $area->append("上海"); $area->append("武漢"); $frm->append('地區:',$area,false); //簡介(多行文字) $desc = new MultilineEntry(); $frm->append('簡介:',$desc,false); //註冊按鈕 $reg = new class('註冊',$win) extends Button { protected $win; public function __construct($text,$win) { $this->win = $win; parent::__construct($text); } //用於重寫父類的單擊事件 protected function onClick() { $this->win->msg('訊息','你點選了註冊按鈕'); } }; $frm->append('',$reg); $win->add($frm); //顯示視窗 $win->show(); UI\run();
執行結果如下:
為了避免每次都要打命令執行php指令碼,我們可以寫個bat指令碼來執行。
D:\amp\php7\php.exe -f D:\wwwroot\demo1\index.php pause
注意php.exe的路徑和執行指令碼路徑,儲存為run.bat,執行結果如下:
更多關於PHP相關內容感興趣的讀者可檢視本站專題:《PHP擴充套件開發教程》、《PHP網路程式設計技巧總結》、《php curl用法總結》、《PHP陣列(Array)操作技巧大全》、《PHP資料結構與演算法教程》、《php程式設計演算法總結》及《php字串(string)用法總結》
希望本文所述對大家PHP程式設計有所幫助。