這個模版,不是smarty的那種模版引擎,不是template。,是一種面向對象設計模式方法,使用的地方譬如,作品easerver中,ui部分用的是wxpython,我現在想換成qt,感覺模版在這種功能就能起到一些作用.
重點是,核心功能封裝于主類,讓子類去繼承應用,程序以php代碼做演示,代碼如下:
- /*
- *系統服務類
- */
- class server {
- //獲取的服務項目列表
- protected $sl = array('apache'=>'httpd.exe','nginx'=>'nginx.exe','memcache'=>'memcached.exe');
- protected $select = '服務key';
- //獲取服務列表
- public function getlist()
- {
- return $this->sl;
- }
- //啟動服務操作
- public function start()
- {
- start $this->select;
- }
- //停止服務操作
- public function stop()
- {
- stop $this->select;
- }
- //重起服務
- public function reboot()
- {
- reboot $this->select;
- }
- //選擇要操作的服務
- public function setselect($name)
- {
- $this->select = $this->sl[$name];
- }
- }
- //顯示界面
- class wxpython extends server{
- public function __construct()
- {
- parent::__construct();
- }
- //窗體
- public function window()
- {
- //生成一個表格,提供給用戶選擇服務
- $this->table($this->getlist());
- //生成一個啟動按鈕,他的點擊時間為啟動服務
- $this->startbut->bind('onclick',$this->start()); //啟動
- $this->stopbut->bind('onclick',$this->stop()); //關閉
- $this->rebootbut->bind('onclick',$this->reboot()); //重起
- }//開源代碼Vevb.com
- //行選擇的時候
- public function rowsonselect()
- {
- $this->setselect( $this->tableselect() );
- }
- }
這樣看來,如果我想換qt的操作界面,只需要把wxpython 換成pyqt的界面生成,一樣是幾個按鈕,給他們指定事件就可以了.
或許指定的語法不一樣,比如wxpython用 bind指定事件,qt庫就不是,更換ui庫不需要修改內核功能部分.
新聞熱點
疑難解答