C++ 轻量级界面库DuiLib库简介(一)—XML基础配置

前不久换了一份工作,客户端界面是用DuiLib库来写的,当时就懵逼了。以前也就只用过MFC、QT等一些常规的库。经过尝试学习后,发现DuiLib库的使用很方便,全靠xml文件里面的条目就能做出美观的界面,而且发布包依赖的环境还少,是一个轻量级的UI库。DuiLib是一个基于Win32的UI库,并没有像MFC一样提供很多封装的类,它仅仅只包含了UI部分,其他的还需要Win32或者MFC的相关知识。

下面就来为你介绍DuiLib的使用,走你。

一、XML 文件编写配置

新建一个XML文件,test.xml,保存为UTF-8格式。内容如下:

<?xml version="1.0" encoding="utf-8"?>
<Window size="425,160" caption="0,0,0,50">
  <Font name="微软雅黑" size="12" bold="false" italic="false" default="true" />
  <Font name="微软雅黑" size="10" bold="false" italic="false" default="false" />
  <VerticalLayout  inset="1,1,1,1" bordersize="1" bordercolor="#FFb3b3b3" bkcolor="#ffffffff"  width="425" height="356" >
    <HorizontalLayout name="caption" inset="2,2,2,2" height="30" bkcolor="#ff118bd9">
      <VerticalLayout height="50">
        <Label name="theme_title" text="{b}新建{/b}" textpadding="5,-5,0,0" textcolor="#ffffffff" width="278" height="30"  font="3" showhtml="true" 
<span style="white-space:pre">	</span>endellipsis="true" />
      </VerticalLayout>
      <VerticalLayout />
      <VerticalLayout width="38" height="29">
        <Button name="btnClose" width="38" height="29" normalimage="Btn_Close.png" hotimage="Btn_Close.png" pushedimage="Btn_Close.png" />
      </VerticalLayout>
    </HorizontalLayout>
    <VerticalLayout inset="5,5,5,5" name="content">
      <HorizontalLayout height="10" />
      <HorizontalLayout height="50" >
        <Label text="项目名称:" width="60" height="30" textcolor="#FF000000" disabledtextcolor="#FFA7A6AA" />
        <Edit name="editTheme" inset="1,1,1,1" bordersize="1" bordercolor="#FFb3b3b3" width="350" height="30" bkcolor="#FFFFFFFF" textpadding="4,3,4,3" 
<span style="white-space:pre">	</span>textcolor="#FF000000" disabledtextcolor="#FFA7A6AA" />
      </HorizontalLayout>
      <HorizontalLayout inset="60,0,0,0" height="50" >
        <Button name="btnTest" width="56" height="30" normalimage="Btn_Sure.png"/>
        <Button name="btnTest2" padding="170,0,0" width="56" height="30" normalimage="Btn_Cancel.png"/>
      </HorizontalLayout>
    </VerticalLayout>
  </VerticalLayout>
</Window>
xml文件创建完成,关键节点的意思请查看后附文档(属性列表.xml),其实有Qt经验的人员应该比较容易看到这个xml的内容。下面说几点需要注意的地方:

1、一定要是保存为UTF-8格式的;

2、window节点不能少;

3、name节点的值需要做到整个xml文件唯一。这个值是与代码交互的关键,用于代码中标识这一个控件具体对象。

4、可以使用HorizontalLayout或者VerticalLayout来进行布局时占位。


  • 0
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
您可以使用duilib来在C++的DLL程序中使用XML设计的UI界面duilib是一个开源的UI,提供了丰富的控件和工具,支持使用XML来设计UI界面。您可以使用duilib的页面设计器工具来设计您的UI界面,并将其保存为XML格式,然后在您的DLL程序中使用duilibUI模块来加载和显示这个XML文件。在使用duilibUI模块时,您需要连接到duilib的核心UI,以便在您的程序中使用duilibUI组件。 以下是使用duilib的基本步骤: 1. 下载duilib,并解压到您的项目目录。 2. 在您的C++项目中添加duilib的头文件和文件。 3. 在您的代码中调用duilib的初始化函数和反初始化函数。 4. 使用duilib的页面设计器工具来设计您的UI界面,并将其保存为XML格式。 5. 在您的代码中使用duilibUI模块来加载和显示这个XML文件。 下面是一个简单的示例代码,展示了如何使用duilib来加载和显示XML界面: ```c++ #include <Windows.h> #include "Duilib/UIlib.h" using namespace DuiLib; int APIENTRY DllMain(HMODULE hModule, DWORD ul_reason_for_call, LPVOID lpReserved) { switch (ul_reason_for_call) { case DLL_PROCESS_ATTACH: // 初始化duilib ::CoInitialize(NULL); CPaintManagerUI::SetInstance(hModule); break; case DLL_PROCESS_DETACH: // 反初始化duilib CPaintManagerUI::Term(); ::CoUninitialize(); break; } return TRUE; } // 显示XML界面 void ShowXmlUI(HWND hWndParent) { // 创建duilib窗口,并加载XML文件 CPaintManagerUI paint_manager; CDialogBuilder builder; CControlUI* pRoot = builder.Create(_T("myui.xml"), NULL, NULL, &paint_manager); if (pRoot == NULL) return; // 设置duilib窗口的父窗口为hWndParent,并显示窗口 HWND hWnd = paint_manager.Create(hWndParent, _T("duilib window")); paint_manager.AttachDialog(pRoot); paint_manager.ShowWindow(true); } ``` 在上面的示例代码中,`DllMain`函数用于初始化和反初始化duilib,`ShowXmlUI`函数用于创建duilib窗口,并加载并显示XML界面。您可以将上面的代码集成到您的DLL程序中,以便在需要时显示XML界面

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值