LCUI 1.3.0 發布,C 的圖形界面開發庫

←手機掃碼閱讀     admin @ 2019-10-09 , reply:0

LCUI 1.3.0 發布了,LCUI 是一個使用 C 語言編寫的圖形界面開發庫。

更新日誌

問題修復:

  • C++ 「operator」 關鍵字衝突 (5a5ba8c)
  • css: 設置字體樣式解析器的 style_handler 后未起作用 (6869683)
  • display: X11Surface_SetCaptionW() 內存泄漏 (484c3d7)
  • font: 當 font_size > 18 時字體點陣圖獲取失敗 (d6315c5)
  • gui: 部件的默認邊框顏色應為透明 (transparent) (5164955)
  • gui: 當部件 pointer-events 為 none 時的事件目標選擇問題 (0f26c8b)
  • gui: TextEdit 佔位符未起作用 (d827767)
  • gui: mousemove 事件應在 mouseout 事件前觸發 (5020b91)
  • gui: 部件屬性值應始終有效 (4b0a2ed)
  • ime: 輸入法候選詞窗口定位問題 (#36#175) (1107f91)
  • renderer: 部件內容區渲染不正確 (f8b0f8b)
  • util: Object_Operate() 中的對象類型判斷不正確 (a326e8c)
  • util: ParseUrl() 解析結果不正確 (3f9450c)

新功能:

  • 添加 LCUI_GetVersion() (de40c7c)
  • 添加圓角邊框渲染,改進盒陰影渲染 (#174) (f36d071)
  • 添加 include/LCUI.h 文件 (#173) (113af6a)
  • builder: 標籤名稱可以是一個已存在的部件類型名稱 (4f6a01c)
  • css: 將 CSSFontStyle_* 系列函數改為公共函數 (568c915)
  • graph: 添加 LCUI_OverPixel() (d8075d9)
  • gui: 添加 canvas 部件 (e246843)
  • gui: 添加 Widget_CollectReferences() (811585b)
  • gui: 添加 Widget_Each() (2d7d1ee)
  • logger: 支持設置日誌等級 (173b92f)
  • scrollbar: 從容器捕獲 touch 和 mousewheel 事件 (f2f9162)

新的體驗方式

想體驗 LCUI 但又覺得編譯太麻煩?試試下面這幾種新的方式:

  1. 使用 LCUI 的標準開發工具 lcui-cli

    
    # 安裝 lcui-cli
    npm install -g @lcui/cli
    
    # 創建一個名為 myapp 的 LCUI 項目
    lcui create myapp
    
    # 進入項目目錄
    cd myapp
    
    # 運行這個項目
    npm run start
    
  2. 克隆並運行示例項目 lc-ui/lcui-quick-start

    
    # 克隆示例代碼庫
    git clone https://gitee.com/lc-ui/lcui-quick-start
    
    # 進入代碼庫
    cd lcui-quick-start
    
    # 安裝 NodeJS 依賴包
    npm install
    
    # 安裝適用於 x64 CPU 架構的 C/C++ 依賴庫
    lcpkg install --arch x64
    
    # 以調試模式運行應用程序
    lcpkg run start --mode debug
    
  3. 使用 lckg 包管理工具:

    
    # 初始化 lcpkg 配置文件,告訴 lcpkg 你的項目相關信息
    lcpkg init
    
    # 從 GitHub 下載安裝已編譯好的 LCUI 庫
    lcpkg install github.com/lc-soft/LCUI
    

注意: 這些工具是使用 JavaScript 語言編寫的,在使用前請先安裝 Node.js

圓角邊框

在這之前,由於複雜度和時間成本的關係一直沒有實現圓角邊框,但這麼擱置下去也不是辦法,一個圖形界面開發庫連個圓角邊框都無法實現的話那也太水了。直到最近,組件庫的新組件需要圓角效果才決定把這個功能列入開發計劃。以下是現在的測試效果圖:

現在的繪製演算法還不是最優解,但作者已經被這個功能折騰得不想再繼續改進下去了,感興趣的可以試試優化它,讓作者感受一下圖形繪製演算法的真正魅力。

Canvas 部件

Canvas 部件用於簡化自定義圖形的繪製流程,具體用法可參考 LC Design 的 Spinner 組件。現在只能當作幀緩存使用,所有繪製操作都需要手動編碼實現,如果你希望有豐富的圖形 API,可以等待熟悉 cario、skia、OpenGL 等圖形庫的貢獻者貢獻相關代碼,簡單的做法是將圖形庫的繪製對象轉換成 LCUI 使用的圖形對象,而複雜點的方法是參考 HTML 5 Canvas API 文檔,基於某個圖形庫封裝一套 C 語言版本的 API。





[admin ]

來源:OsChina
連結:https://www.oschina.net/news/110432/lcui-1-3-0-released
LCUI 1.3.0 發布,C 的圖形界面開發庫已經有23次圍觀

http://coctec.com/news/all/show-post-216518.html