PB的界面因爲其封閉性,一直以來都是最大的弱項。自PB9.0開放了PBNI接口後,開始流行起來一些界面美化方案。目前來看,共分三類。編程
PBNI接口容許建立自繪組件,開源軟件Kodigo創造了Canvas組件,容許PB代碼自繪組件界面,由此開創了Canvas自繪方案。當前比較流行的組件庫有:ide
1、Kodigo工具
2、AdvancedGUI性能
3、PowerFrameworkui
這種方案的優勢是體系化,定製化。缺點是較慢(數十數百個Canvas自繪),高侵入性(必須使用定製組件)。spa
這種方案能夠用於多種開發語言和工具,其原理是劫持窗口消息,徹底自繪窗口。因此界面徹底與業務代碼分離。優勢是使用方便,侵入性最低。缺點是定製困難。code
支持這個方案的基本是商業工具,開源且較爲完備的有SkinTK V0.20。blog
這種方案正是PowerPlume所採用的方案,與前兩個方案比較起來,綜合了二者的優勢。ApiHook能夠使用任意現有窗口,無需繼承,使得侵入性下降,同時又能夠定製其內容,避免了內容雷同的換膚。DirectUI技術(使用Duilib庫)容許在同一窗口建立多個組件,避免了衆多Canvas組件帶來的性能壓力。繼承
接口也相對簡單,一種組件只需一個接口接口
duistartup(256) drawbarcode(st_bc1, "qr", "12345678", "") drawbarcode(st_bc2, "ean", "12345678", "") drawimage(cb_img, "png", "Google", "") drawimage(cb_img_v, "png", "Google", "") drawimage(pb_img, "baidu", "Baidu", "") drawicon(st_ico, "female", "female", "") drawicon(st_ico2, "male", "male", "") drawicon(cb_ico, "star", "star", "")
提供了PB10.5 PB11.5 PB12.5三個版本
<本節完>