1. XenForo 1.5.14 中文版——支持中文搜索!现已发布!查看详情
  2. Xenforo 爱好者讨论群:215909318 XenForo专区

新闻 LCUI 1.0 Alpha 发布,C 的图形界面库 下载

本帖由 漂亮的石头2017-04-18 发布。版面名称:软件资讯

  1. 漂亮的石头

    漂亮的石头 版主 管理成员

    注册:
    2012-02-10
    帖子:
    487,979
    赞:
    47
    [​IMG]

    [申请修改项目图标,新图标:https://lcui.lc-soft.io/static/images/lcui-logo-lg.png,修改后请删除此段文字]

    LCUI 是一个用 C 编写的图形界面库,可用于构建简单的桌面应用程序。需要特别注意的是,LCUI 采用的开源许可证是GNU 通用公共许可证第二版,简称 GPLv2。

    官网:https://lcui.lc-soft.io
    码云:https://git.oschina.net/lc-soft/LCUI
    Github:https://github.com/lc-soft/LCUI

    由于本次更新改动很大,所以版本号从 1.0 开始,主要更新内容如下:


    • 改进 bmp、jpeg、png 图片的读取接口


    • 添加滚动条(Scrollbar)部件


    • 改进按钮(Button)部件


    • 改进文本显示(TextView)部件


    • 改进文本编辑(TextEdit)部件


    • 改进部件的类型、事件、布局及样式处理


    • 改进图形界面的性能


    • 添加触控支持


    • 添加 CSS 和 XML 支持


    • 移除 Linux 的帧缓冲(FrameBuffer)支持


    • 添加对 Linux 的 XWindow 的支持


    • 添加对 Windows 通用应用平台(UWP)的简单支持


    • 改进对 Windows 的支持


    • 添加部分文档


    • 修复部分已知BUG

    原计划在此版本中添加缩放功能,用于适应各种分辨率的屏幕,但由于涉及到的地方比较多,所以该特性已经推迟到后续的版本中。

    以下将针对几个主要改动做些简单的说明,如需要体验具体效果可以下载 LCUI 的功能旗舰级应用: LC's Finder

    XML 和 CSS


    本次比较大的改动是加入了对 XML 和 CSS 支持,为此 LCUI 的部件布局和样式处理也做了些整改,基本算是重写了一遍。相信写过图形界面应用的程序员们都会有这样的体验,只用编程语言来描述界面内容是一件很麻烦的事情,写了一坨代码却只是实现一些简单的布局和效果,可读性差且不易维护。XML 和 CSS 能够解决这种问题,界面的布局和结构可以用 XML 描述,目前支持的标签很少,书写起来会比较简单,就像下面这样。

    <?xml version="1.0" encoding="UTF-8" ?>
    <lcui-app>
    <resource type="text/css" src="helloworld.css"/>
    <resource type="application/font-ttf" src="C:/Windows/Fonts/comic.ttf"/>
    <ui>
    <widget id="text-hello" type="textview" class="text-hello">Hello, World!</widget>
    <widget id="edit" type="textedit">Hello, World!</widget>
    <widget id="btn-ok" type="button">Submit</widget>
    </ui>
    </lcui-app>

    至于 CSS,你可以用它来描述界面元素的视觉效果,受限于现有条件,目前只支持简单的 CSS 样式,并且某些 CSS 样式的实际效果会根据 LCUI 的现有情况做一定的调整,属于定制版的 CSS。除了一些简单的样式外,你还可以靠 CSS 来使用图标字体,例如: FontAwesomeMaterial Design Icons,当然,这些图标字体附带的 CSS 文件并不能直接在 LCUI 中使用,需要做些修改,具体可以参考这篇文章

    对于比较复杂的界面,CSS 代码也会比较多,如果觉得这堆 CSS 代码写起来很麻烦,可以试试使用 sasslessstylus 这类 CSS 预处理器来简化编码,就像下面这样。

    [​IMG]

    当 CSS 代码比较多的时候,会很容易出现样式污染问题,在没有浏览器自带的开发人员工具情况下,这个问题处理起来会比较麻烦,但也不是没有办法,LCUI 提供了 Widget_PrintStyleSheets() 函数,可以打印出指定部件应用到的所有样式表内容,结果类似于下面这样。

    selector(1612994007) stylesheets begin

    [helloworld.css][rank: 11]
    textview.text-hello {
    margin-top: 25px;
    margin-right: 25px;
    margin-bottom: 25px;
    margin-left: 25px;
    padding-top: 25px;
    padding-right: 25px;
    padding-bottom: 25px;
    padding-left: 25px;
    border-top-width: 1px;
    border-top-style: solid;
    border-top-color: #000000;
    border-right-width: 1px;
    border-right-style: solid;
    border-right-color: #000000;
    border-bottom-width: 1px;
    border-bottom-style: solid;
    border-bottom-color: #000000;
    border-left-width: 1px;
    border-left-style: solid;
    border-left-color: #000000;
    background-color: #fafafa;
    color: #8cc63f;
    font-family (+): "Comic Sans MS";
    font-size (+): 18px;
    text-align (+): center;
    }

    [<none>][rank: 1]
    * {
    position: static;
    display: block;
    width: auto;
    height: auto;
    此处省略部分内容 ...
    background-color: rgba(255,255,255,0);
    }
    [selector(1612994007) final stylesheet] {
    此处省略部分内容 ...
    }
    selector(1612994007) stylesheets end
    UWP 支持


    此版本虽然支持编译成 Windows 通用库/运行时组件,但并未包含 UWP 版的消息循环、键盘、鼠标、触控和图形输出的支持代码,这块的代码目前还在 LC's Finder 项目内,如有需要可以套用该项目的相关代码,后续版本会将这块的代码整理进来。

    最后


    LCUI 属于个人项目,它的大部分功能都是按作者个人需求而添加的,与那些立志为开发者们解决各种难题的开源项目不同,它没有成群的贡献者,也没有活跃的社区,如果你有什么功能需求、改进意见或者BUG反馈,请先花一点时间尝试自己动手解决,毕竟作者的空闲时间是有限的。
    LCUI 1.0 Alpha 发布,C 的图形界面库下载地址
     
正在加载...