CN106815020B - 一种支持用户自定义功能项的软件实现方法 - Google Patents
一种支持用户自定义功能项的软件实现方法 Download PDFInfo
- Publication number
- CN106815020B CN106815020B CN201611259361.3A CN201611259361A CN106815020B CN 106815020 B CN106815020 B CN 106815020B CN 201611259361 A CN201611259361 A CN 201611259361A CN 106815020 B CN106815020 B CN 106815020B
- Authority
- CN
- China
- Prior art keywords
- button
- function
- customized
- custom
- state
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/38—Creation or generation of source code for implementing user interfaces
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/048—Interaction techniques based on graphical user interfaces [GUI]
- G06F3/0481—Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- User Interface Of Digital Computer (AREA)
Abstract
本发明涉及一种支持用户自定义功能项的软件实现方法,其技术特点在于:包括以下步骤:步骤1、创建定制按钮和定制按钮区以及功能项面板;步骤2、创建定制按钮基类和定制按钮派生类;步骤3、当功能项面板中的功能按钮的定制状态发生变化时,处理该功能按钮的定制状态数据,并判断该功能按钮的当前状态是否为选中状态;步骤4、当功能项面板中的功能按钮的当前状态为选中状态时,将与该功能按钮相对应的定制按钮增加到定制按钮区中;步骤5、当功能项面板中的功能按钮的当前状态为非选中状态时,将与该功能按钮相对应的定制按钮从定制按钮区中删除。本发明可供用户按照自己的需求选取显示的功能按钮,以满足不同用户对软件的需求。
Description
技术领域
本发明属于计算机应用技术领域,涉及装备软件图形库的开发应用,尤其是一种支持用户自定义功能项的软件实现方法。
背景技术
在装备显控界面中,按钮是最常用的用户交互控件,一方面用户比较习惯按钮操作,另一方面按钮较菜单等控件操作起来更快捷。随着装备软件功能需求的增多,按钮作为最直接的用户交互方式在显示控制界面中出现的也越来越频繁,若用户每个需求项对应一个功能按钮,那么按钮在界面中出现的频率也就会越来越高,难免造成界面布局错综复杂,人机交互不够友好的问题。
发明内容
本发明的目的在于克服现有技术的不足,提供一种设计合理、界面布局简洁且人机交互友好的支持用户自定义功能项的软件实现方法。
本发明解决其技术问题是采取以下技术方案实现的:
一种支持用户自定义功能项的软件实现方法,包括以下步骤:
步骤1、创建定制按钮和定制按钮区以及功能项面板,进行界面初始化;
步骤2、创建定制按钮基类和定制按钮派生类;
步骤3、当功能项面板中的功能按钮的定制状态发生变化时,处理该功能按钮的定制状态数据,并判断该功能按钮的当前状态是否为选中状态;
步骤4、当功能项面板中的功能按钮的当前状态为选中状态时,将与该功能按钮相对应的定制按钮增加到定制按钮区中;
步骤5、当功能项面板中的功能按钮的当前状态为非选中状态时,将与该功能按钮相对应的定制按钮从定制按钮区中删除。
而且,所述步骤1的创建定制按钮和定制按钮区的具体方法为:
在界面底部状态栏创建定制按钮和用于显示定制按钮项的定制按钮区,将定制按钮类型设置为Qt图形界面开发工具自带的基础类QPushButton,定制按钮区的类型设置为QFrame,并在界面底部采用水平布局管理器QHBoxLayout将定制按钮和定制按钮区进行界面布局。
而且,所述步骤1的创建功能项面板具体方法为:
在界面布局中,创建由多个功能按钮组成的功能项面板,设置各功能按钮的类型为QPushButton,功能项面板类型为QFrame,该功能项面板默认为隐藏状态,当定制按钮按下后,该功能项面板显示,再次按下该定制按钮后,该功能项面板隐藏。
而且,所述功能按钮包括辅助定位按钮、AIS/雷达按钮、航海计算按钮、辅助作业按钮、计划航线按钮、标记点管理按钮、海图管理按钮和标绘按钮。
而且,所述步骤2的具体方法为:
创建继承自QWidget的定制按钮的纯虚基类IKeyWidget和从该定制按钮的纯虚基类IKeyWidgt中派生的定制按钮派生类,该定制按钮派生类需要重载定制按钮按下的纯虚槽函数,以调用相应的功能。
而且,所述步骤3包括以下步骤:
(1)判断功能项面板中功能按钮状态是否发生变化;
(2)当功能项面板中的功能按钮的定制状态发生变化时,功能项面板将发生状态变化的功能按钮的按钮文字和当前状态作为信号参数发射至定制按钮区;
(3)定制按钮区捕获该信号参数后,执行相应的槽函数,并在槽函数中,判断该功能按钮的当前状态是否为选中状态。
而且,所述步骤4的具体步骤包括:
(1)根据选中功能按钮文字判断定制按钮的创建类型,并创建IKeyWidgt派生类对象;
(2)向定制按钮管理映射表中插入创建的IKeyWidgt派生类对象;
所述定制按钮管理映射表用于管理定制按钮区中的全部定制按钮,使定制按钮文字和按钮指针一一对应起来;
(3)向定制按钮区的布局管理器中插入定制按钮。
而且,所述步骤5的具体步骤包括:
(1)根据未选中功能按钮的文字,从定制按钮管理映射表中获取与该功能按钮相对应的定制按钮指针;
(2)将定制按钮从定制按钮区布局管理器中删除;
(3)释放定制按钮所占内存;
(4)将定制按钮信息从定制按钮管理映射表中删除。
本发明的优点和积极效果是:
1、本发明提供支持用户自定义功能项的软件实现方法,可供用户按照自己的需求选取显示的功能按钮。既支持多个功能项,以满足不同用户对软件的需求,又能使多个功能按钮在界面中显示起来简单、清晰、易操作。
2、本发明能够达到满足用户在不同航行阶段对航海作业需求不同的要求、简化界面布局、减少冗余信息对用户视觉和操作上的干扰,增强人机交互易用性,提高航海作业效率的目的。
附图说明
图1是本发明的定制按钮和定制按钮区的界面布局图;
图2是本发明的功能项面板的界面布局图;
图3是本发明的功能项面板的功能按钮状态发生变化示意图;
图4是本发明的功能项面板的功能按钮的定制状态数据处理流程图;
图5是本发明的向定制按钮区增加定制按钮的数据处理流程图;
图6是本发明的向定制按钮区增加定制按钮的效果图;
图7是本发明的从定制按钮区删除定制按钮的数据处理流程图;
图8是本发明的从定制按钮区删除定制按钮的效果图。
具体实施方式
以下结合附图对本发明实施例作进一步详述:
一种支持用户自定义功能项的软件实现方法,包括以下步骤:
步骤1、创建定制按钮和定制按钮区以及功能项面板,进行界面初始化;
所述步骤1的创建定制按钮和定制按钮区的具体方法为:
在界面底部状态栏创建定制按钮和用于显示定制按钮项的定制按钮区,将定制按钮类型设置为Qt图形界面开发工具自带的基础类QPushButton,定制按钮区的类型设置为QFrame,并在界面底部采用水平布局管理器QHBoxLayout将定制按钮和定制按钮区进行界面布局,其界面布局图如图1所示。
所述步骤1的创建功能项面板具体方法为:
在界面布局中,创建由多个功能按钮组成的功能项面板,设置各功能按钮的类型为QPushButton,功能项面板类型为QFrame,该功能项面板默认为隐藏状态,当定制按钮按下后,该功能项面板显示,再次按下该定制按钮后,该功能项面板隐藏。
所述功能按钮,如图2所示,包括辅助定位按钮、AIS/雷达按钮、航海计算按钮、辅助作业按钮、计划航线按钮、标记点管理按钮、海图管理按钮和标绘按钮。
步骤2、创建定制按钮基类和定制按钮派生类;
所述步骤2的具体方法为:
创建继承自QWidget的定制按钮的纯虚基类IKeyWidget和从该定制按钮的纯虚基类IKeyWidgt中派生的定制按钮派生类,该定制按钮派生类需要重载定制按钮按下的纯虚槽函数,以调用相应的功能。
步骤3、当功能项面板中的功能按钮的定制状态发生变化时,处理该功能按钮的定制状态数据,并判断该功能按钮的当前状态是否为选中状态;
所述步骤3的具体方法为:如图3所示,当功能项面板的功能按钮的定制状态发生变化时,功能项面板将发生定制状态变化的功能按钮文字和当前状态作为信号参数发射至定制按钮区,定制按钮区捕获该信号参数后,增加或删除该定制状态发生变化的定制按钮。其具体数据处理流程如图4所示,包括以下步骤:
(1)判断功能项面板中功能按钮状态是否发生变化;
(2)当功能项面板中的功能按钮的定制状态发生变化时,功能项面板将发生状态变化的功能按钮的按钮文字和当前状态作为信号参数发射至定制按钮区;
(3)定制按钮区捕获该信号参数后,执行相应的槽函数,并在槽函数中,判断该功能按钮的当前状态是否为选中状态。
步骤4、当功能项面板中的功能按钮的当前状态为选中状态时,将与该功能按钮相对应的定制按钮增加到定制按钮区中;
所述步骤4的具体步骤,如图5所示,包括:
(1)根据选中功能按钮文字判断定制按钮的创建类型,并创建IKeyWidgt派生类对象;
(2)向定制按钮管理映射表QMap(QString,QPushButton*)中插入创建的IKeyWidgt派生类对象;
所述定制按钮管理映射表用于管理定制按钮区中的全部定制按钮,使定制按钮文字和按钮指针一一对应起来;
(3)向定制按钮区的布局管理器中插入定制按钮。
其效果图,如图6所示。
步骤5、当功能项面板中的功能按钮的当前状态为非选中状态时,将与该功能按钮相对应的定制按钮从定制按钮区中删除。
所述步骤5的具体步骤,如图7所示,包括:
(1)根据未选中功能按钮的文字,从定制按钮管理映射表中获取与该功能按钮相对应的定制按钮指针;
(2)将定制按钮从定制按钮区布局管理器中删除;
(3)释放定制按钮所占内存;
(4)将定制按钮信息从定制按钮管理映射表中删除。
其效果图,如图8所示。
按照本发明的方法实施后,在CentOS系统中,以QtCreator为开发环境进行了软件仿真试验,成功实现了一种支持用户自定义功能项的软件实现方法,由于不同航行阶段对航海作业需求有所区别,利用该种交互方式,大大减少了用户操作和记忆负担,避免了不相关信息对用户的干扰,同时简化了界面布局、增强人机交互友好性,更加优化满足装备软件的应用需求。
需要强调的是,本发明所述的实施例是说明性的,而不是限定性的,因此本发明包括并不限于具体实施方式中所述的实施例,凡是由本领域技术人员根据本发明的技术方案得出的其他实施方式,同样属于本发明保护的范围。
Claims (3)
1.一种支持用户自定义功能项的软件实现方法,其特征在于:包括以下步骤:
步骤1、创建定制按钮和定制按钮区以及功能项面板,进行界面初始化;
步骤2、创建定制按钮基类和定制按钮派生类;
步骤3、当功能项面板中的功能按钮的定制状态发生变化时,处理该功能按钮的定制状态数据,并判断该功能按钮的当前状态是否为选中状态;
步骤4、当功能项面板中的功能按钮的当前状态为选中状态时,将与该功能按钮相对应的定制按钮增加到定制按钮区中;
步骤5、当功能项面板中的功能按钮的当前状态为非选中状态时,将与该功能按钮相对应的定制按钮从定制按钮区中删除;
所述步骤1的创建定制按钮和定制按钮区的具体方法为:
在界面底部状态栏创建定制按钮和用于显示定制按钮项的定制按钮区,将定制按钮类型设置为Qt图形界面开发工具自带的基础类QPushButton,定制按钮区的类型设置为QFrame,并在界面底部采用水平布局管理器QHBoxLayout将定制按钮和定制按钮区进行界面布局;
所述步骤2的具体方法为:
创建继承自QWidget的定制按钮的纯虚基类IKeyWidget和从该定制按钮的纯虚基类IKeyWidgt中派生的定制按钮派生类,该定制按钮派生类需要重载定制按钮按下的纯虚槽函数,以调用相应的功能;
所述步骤3包括以下步骤:
(1)判断功能项面板中功能按钮状态是否发生变化;
(2)当功能项面板中的功能按钮的定制状态发生变化时,功能项面板将发生状态变化的功能按钮的按钮文字和当前状态作为信号参数发射至定制按钮区;
(3)定制按钮区捕获该信号参数后,执行相应的槽函数,并在槽函数中,判断该功能按钮的当前状态是否为选中状态;
所述步骤4的具体步骤包括:
(1)根据选中功能按钮文字判断定制按钮的创建类型,并创建IKeyWidgt派生类对象;
(2)向定制按钮管理映射表中插入创建的IKeyWidgt派生类对象;
所述定制按钮管理映射表用于管理定制按钮区中的全部定制按钮,使定制按钮文字和按钮指针一一对应起来;
(3)向定制按钮区的布局管理器中插入定制按钮;
所述步骤5的具体步骤包括:
(1)根据未选中功能按钮的文字,从定制按钮管理映射表中获取与该功能按钮相对应的定制按钮指针;
(2)将定制按钮从定制按钮区布局管理器中删除;
(3)释放定制按钮所占内存;
(4)将定制按钮信息从定制按钮管理映射表中删除。
2.根据权利要求1所述的一种支持用户自定义功能项的软件实现方法,其特征在于:所述步骤1的创建功能项面板具体方法为:
在界面布局中,创建由多个功能按钮组成的功能项面板,设置各功能按钮的类型为QPushButton,功能项面板类型为QFrame,该功能项面板默认为隐藏状态,当定制按钮按下后,该功能项面板显示,再次按下该定制按钮后,该功能项面板隐藏。
3.根据权利要求2所述的一种支持用户自定义功能项的软件实现方法,其特征在于:所述功能按钮包括辅助定位按钮、AIS/雷达按钮、航海计算按钮、辅助作业按钮、计划航线按钮、标记点管理按钮、海图管理按钮和标绘按钮。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611259361.3A CN106815020B (zh) | 2016-12-30 | 2016-12-30 | 一种支持用户自定义功能项的软件实现方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611259361.3A CN106815020B (zh) | 2016-12-30 | 2016-12-30 | 一种支持用户自定义功能项的软件实现方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106815020A CN106815020A (zh) | 2017-06-09 |
CN106815020B true CN106815020B (zh) | 2020-09-01 |
Family
ID=59110588
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201611259361.3A Active CN106815020B (zh) | 2016-12-30 | 2016-12-30 | 一种支持用户自定义功能项的软件实现方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106815020B (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113110900B (zh) * | 2020-01-10 | 2023-05-26 | 钉钉控股(开曼)有限公司 | 界面显示方法、设备和存储介质 |
CN113672220A (zh) * | 2020-05-15 | 2021-11-19 | 永中软件股份有限公司 | 一种对智能按钮的管理系统及方法 |
CN112732258A (zh) * | 2021-01-11 | 2021-04-30 | 中国船舶重工集团公司第七0七研究所 | 一种基于状态机的动态开关按钮软件实现方法 |
CN113342446A (zh) * | 2021-06-25 | 2021-09-03 | 中国船舶重工集团公司第七0七研究所 | 一种支持用户自定义显示内容的实现方法 |
CN114035526B (zh) * | 2021-11-15 | 2023-03-14 | 西安热工研究院有限公司 | 一种功能块通用软手操器的实现方法、系统、设备及介质 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101090435A (zh) * | 2006-06-14 | 2007-12-19 | 株式会社东芝 | 在文档处理装置中自定义用户界面的系统和方法 |
CN101179673A (zh) * | 2006-11-06 | 2008-05-14 | 深圳Tcl新技术有限公司 | 一种电视常用功能界面定制的方法 |
CN102736904A (zh) * | 2011-04-08 | 2012-10-17 | 腾讯科技(深圳)有限公司 | 一种界面快速导航的方法及装置 |
CN102799339A (zh) * | 2011-05-24 | 2012-11-28 | 汉王科技股份有限公司 | 应用功能按钮的点触实现方法及装置 |
CN103399733A (zh) * | 2013-07-01 | 2013-11-20 | 福建星网锐捷安防科技有限公司 | 下拉框和文本框实现增删改查功能的方法 |
CN104090777A (zh) * | 2014-07-28 | 2014-10-08 | 浪潮电子信息产业股份有限公司 | 一种对软件功能模块自定义界面布局的方法 |
CN105975147A (zh) * | 2016-04-27 | 2016-09-28 | 浙江慧脑信息科技有限公司 | 一种自定义选项输入方法 |
US9459776B1 (en) * | 2013-03-13 | 2016-10-04 | The United States Of America As Represented By The Secretary Of The Army | Device for use in studies involving multiple subjects to record observation data in an output file |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8839300B2 (en) * | 2008-02-19 | 2014-09-16 | At&T Intellectual Property I, Lp | Method and system for presenting electronic programming guides |
CN102566864A (zh) * | 2010-12-24 | 2012-07-11 | 新奥特(北京)视频技术有限公司 | 一种灵活的自定义界面操作方法及系统 |
-
2016
- 2016-12-30 CN CN201611259361.3A patent/CN106815020B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101090435A (zh) * | 2006-06-14 | 2007-12-19 | 株式会社东芝 | 在文档处理装置中自定义用户界面的系统和方法 |
CN101179673A (zh) * | 2006-11-06 | 2008-05-14 | 深圳Tcl新技术有限公司 | 一种电视常用功能界面定制的方法 |
CN102736904A (zh) * | 2011-04-08 | 2012-10-17 | 腾讯科技(深圳)有限公司 | 一种界面快速导航的方法及装置 |
CN102799339A (zh) * | 2011-05-24 | 2012-11-28 | 汉王科技股份有限公司 | 应用功能按钮的点触实现方法及装置 |
US9459776B1 (en) * | 2013-03-13 | 2016-10-04 | The United States Of America As Represented By The Secretary Of The Army | Device for use in studies involving multiple subjects to record observation data in an output file |
CN103399733A (zh) * | 2013-07-01 | 2013-11-20 | 福建星网锐捷安防科技有限公司 | 下拉框和文本框实现增删改查功能的方法 |
CN104090777A (zh) * | 2014-07-28 | 2014-10-08 | 浪潮电子信息产业股份有限公司 | 一种对软件功能模块自定义界面布局的方法 |
CN105975147A (zh) * | 2016-04-27 | 2016-09-28 | 浙江慧脑信息科技有限公司 | 一种自定义选项输入方法 |
Also Published As
Publication number | Publication date |
---|---|
CN106815020A (zh) | 2017-06-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106815020B (zh) | 一种支持用户自定义功能项的软件实现方法 | |
TWI643121B (zh) | 物件顯示的方法以及終端設備 | |
CN108228287B (zh) | 基于qt的用户界面控件的生成方法及装置 | |
US9182948B1 (en) | Method and system for navigating hierarchical levels using graphical previews | |
KR102061361B1 (ko) | 확장형 통신 서비스를 위한 동적인 최소화된 내비게이션 바 | |
US9021398B2 (en) | Providing accessibility features on context based radial menus | |
US11150739B2 (en) | Chinese character entry via a Pinyin input method | |
CN110417988B (zh) | 一种界面显示方法、装置及设备 | |
KR20160128739A (ko) | 디스플레이 장치 및 그의 유저 인터페이스 제공 방법 | |
KR20160015814A (ko) | 전자 장치 및 이의 ui 표시 방법 | |
CN105144057A (zh) | 用于根据具有模拟三维特征的控制图标的外观变化来移动光标的设备、方法和图形用户界面 | |
KR20130053454A (ko) | 플리킹을 이용한 리스트 선택 지원 단말 장치 및 방법 | |
EP3910452A1 (en) | Method for displaying and electronic device thereof | |
KR20100104804A (ko) | Ddi, ddi 제공방법 및 상기 ddi를 포함하는 데이터 처리 장치 | |
KR102280474B1 (ko) | 전자 장치의 운용 방법 및 장치 | |
CN109446832A (zh) | 一种截屏方法及装置 | |
CN110075519B (zh) | 虚拟现实中的信息处理方法及装置、存储介质及电子设备 | |
CN104995593A (zh) | 用于处理列表的触摸屏设备 | |
KR20140030378A (ko) | 휴대 장치의 입력 처리 방법 및 그 휴대 장치 | |
CN113870394A (zh) | 一种动画生成方法、装置、设备及存储介质 | |
JP5957026B2 (ja) | 入力領域の生成方法、生成装置、および生成プログラム | |
JP6695402B2 (ja) | 表示システム、及び表示プログラム | |
CN112214126B (zh) | 操作面板及其显示方法、设备 | |
US11908088B2 (en) | Controlling virtual resources from within an augmented reality environment | |
JP6202997B2 (ja) | 電子機器、方法及びプログラム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |