Giter Site home page Giter Site logo

duilib2's Introduction

1. duilib

关于duilib的介绍可以访问:https://github.com/duilib/duilib

该项目基于DuiLib_Ultimate修改,对其进行了BUG修复、功能增强。

2. 如何编译

2.1 从源码编译

使用Visual Studio 2017打开src\duilib2.sln,选择对应的编译选项进行编译,或者使用CMake生成相应的工程然后编译。

如果需要编译Cef控件,需要提前下载cef库,并设置UILIB_WITH_CEF宏。

CMake脚本会默认下载winsoft666 cef_binary项目的v1.0版本到cef_binary-1.0目录,也可以从其他位置下载其他版本的cef,放置到此目录。

2.2 使用vcpkg编译/安装

方法如下:

  1. 将vcpkg_ports\duilib2文件夹(含)拷贝到\ports文件夹内。
  2. 使用如下命令安装。
# 动态库
vcpkg install duilib2:x86-windows

# 静态库
vcpkg install duilib2:x86-windows-static

3. 属性

属性文档见:src\doc\Attributes.xml

4. BUG修复及新增功能

  • 修复:在高DPI模式下, CLabelUI(含派生于它的CButtonUI控件)的size不正确的BUG。
  • 修复:Edit控件在没有指定高度时,宽度无法适应DPI的BUG。
  • 修复:List控件在拖动鼠标改变表头宽度时,表头宽度成倍数级增长的BUG。
  • 修复:List控件在当用户指定了表头高度时,没有将高度进行DPI缩放的BUG。
  • 修复:在未指定字体,使用默认字体时,文字被进行2次DPI Scale的BUG。
  • 修复:Menu控件在高DPI下Menu窗体Size计算错误的BUG。
  • 修复:Windows的maxinfo属性不支持DPI缩放的BUG。
  • 修复:Caption 属性不能适应DPI缩放的BUG。
  • 优化:不同DPI图片选择机制,在对应的DPI图片(***@200.png)不存在时,使用1倍原图缩放。
  • 优化:动态设置非资源图片,支持DPI图片选择机制。
  • 新增:ListHeader新增sepwidthadaptdpiscale属性,用于指定分隔符宽是否适应DPI缩放。
  • 新增:bkimage等属性新增adaptdpiscale子属性,用于指定该图片是否适应DPI缩放。
  • 新增:Window新增dpi属性,支持dpi数字、system等2种类型取值。
  • 修复:绘制矩形边框时,右边框和下边框有1px的间距误差的BUG。
  • 修复:压缩包内文件不支持中文的BUG。
  • 修复:Groupbox的上边框不能位于文字中间的BUG。
  • 新增:新增Windows size的取值max,支持在启动时即最大化。
  • 新增:发送任务(含lamda表达式)到UI线程的功能,见Utils\Task.h
  • 新增:CEF控件,使用CEF离线渲染模式,支持背景透明,异形控件,Debug/Release均可完美退出无cef异常抛出。
  • 优化:CEF支持GDI绘制和OpenGL绘制,提升客户端兼容性。
  • 优化:任务栏托盘,提供任务栏重启重新创建托盘图标的功能。
  • 修复:flash控件显示异常,及无法与C++交互的问题。
  • 新增:CMake支持。

由于DuiLib需要修复的Bug以及需要新增的特性实在是太多了,个人建议在不考虑版权的情况,优先使用类似Qt这样的成熟稳定的界面库。 Qt自带的QWebEngine可以用来显示Web页面并与其交互,如果希望寻求更大的自由度可以采用Qt+CEF的方式,实现方式和Duilib2中的方式类似,可以参考QCefWidget

duilib2's People

Contributors

winsoft666 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.