zoukankan      html  css  js  c++  java
  • RFID会议签到系统总结(十八)――菜单与工具栏的加载

     

    经过上二篇的铺垫,现在终于可以加载菜单与工具栏了。先来看一下IService的接口实现里LoadCommand方法是如何来加载菜单与工具栏的:

    IService接口的实现


     

    上述第一步先从模块的配置文件里读取到菜单与工具栏,得到相应的配置类;再把配置类转化为上二篇的带Command模式的菜单项(或工具栏按钮)类的数组;最后把数组加入到主窗体的菜单项集合(或工具栏按钮集合)中。

    那如何把配置类转为菜单项(或工具栏按钮)类数组的呢?其实那个配置类本身也就是一个层层叠加的集合,每一项的属性跟菜单项(或工具栏按钮)的属性有对应,转化过程就是层层属性转化的过程,唯一另外要做的一件事就是把相应的单击事件附加上去。

    具体过程见下面代码:

    从配置到菜单(工具栏)


     

    注意这里的设定,工具栏按钮(及其带的下拉菜单)肯定是要有相应的主菜单菜单项对应的,换言之就是不存在孤立的工具栏按钮,否则此按钮(及其带的下拉菜单)是无效的。

     

    上面是模块的菜单与工具栏加载,主窗体的菜单与工具栏的加载当然与此类同,只是那里除此之外,还有一些固定的菜单与工具栏,比如“退出”、“帮助”、“关于”等等,无论需求如何变,这些东西总归是要的,我就直接在主程序的菜单与工具栏里把这些项的内容做死了,用不着经过配置。但顺序没有做死,比如“帮助”这样的菜单(或工具栏)总是加载到最后一项的。

  • 相关阅读:
    嵌入式开发之基于模型的设计思想
    tslib库的移植以及"selected device is not a touchscreen I understand"问题解决
    rocketMq broker.conf全部参数解释
    rocketMq 消息偏移量 Offset
    3、验证,数据绑定和类型转换
    2、springframe Resources
    1、Spring Framework 5.0简述
    POI导出Excel时下拉列表值超过255的问题(String literals in formulas can't be bigger than 255 characters ASCII)
    rocketMq console MQClientException异常
    25. Secure Object Implementations(安全对象实现)
  • 原文地址:https://www.cnblogs.com/lichdr/p/829344.html
Copyright © 2011-2022 走看看