CN108829390A - 一种软件主界面框架设计方法 - Google Patents
一种软件主界面框架设计方法 Download PDFInfo
- Publication number
- CN108829390A CN108829390A CN201810329021.6A CN201810329021A CN108829390A CN 108829390 A CN108829390 A CN 108829390A CN 201810329021 A CN201810329021 A CN 201810329021A CN 108829390 A CN108829390 A CN 108829390A
- Authority
- CN
- China
- Prior art keywords
- icon
- region
- dock
- forms
- main interface
- 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.)
- Granted
Links
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
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- User Interface Of Digital Computer (AREA)
Abstract
本发明公开一种软件主界面框架设计方法,主界面使用QT跨平台库开发,最外层主窗体继承自QDialog或QWidget,划分为横式排列的3个区域,界面的背景和样式通过QSS样式表配置,将主界面设计为包含如下3个区域:区域1:区域1继承自QWidget,是主框架的标题栏;区域2:区域2继承自QWidget,包括3个子部分,分别显示菜单栏、工具栏和软件Logo图标;区域3:区域3继承自QMainWindow,划分为竖式QSpliter和状态栏2个子部分,其中,竖式QSpliter管理5个子窗体,包括左侧工具栏、左侧停靠栏、中间容器、右侧停靠栏和右侧工具栏,中间容器又包括QWorkSpace窗体容器和底部停靠栏2个子部分。此种方法可实现标题栏、状态栏等可定制,停靠栏可方便显示、隐藏,各个子窗体的样式可定制。
Description
技术领域
本发明属于软件编程领域,特别涉及一种跨平台软件主界面框架设计方法。
背景技术
QT界面库作为跨平台软件开发的底层库,得到了广泛应用。通常使用QT的QMainWindow作为软件的最外层窗体,开发人员可添加菜单栏、图标栏、停靠栏、中间核心窗体、设置状态栏等。然而使用默认的QMainWindow仅能实现普通的窗体视觉效果,无法满足一些高级功能需求,例如:不能定值标题栏、无法实现停靠栏便捷的显示隐藏、无法实现中间窗体的可选伸缩功能等。界面的美观度和使用的便捷性方面存在不足。
为了解决上述问题,本发明人提出一种软件主界面框架设计方案,本案由此产生。
发明内容
本发明的目的,在于提供一种软件主界面框架设计方法,其可实现标题栏、状态栏等可定制,停靠栏可方便显示、隐藏,各个子窗体的样式可定制。
为了达成上述目的,本发明的解决方案是:
一种软件主界面框架设计方法,主界面使用QT跨平台库开发,最外层主窗体继承自QDialog或QWidget,划分为横式排列的3个区域,界面的背景和样式通过QSS样式表配置,将主界面框架设计为包含如下3个区域:
区域1:区域1继承自QWidget,是主框架的标题栏;
区域2:区域2继承自QWidget,包括3个子部分,分别显示菜单栏、工具栏和软件Logo图标;
区域3:区域3继承自QMainWindow,划分为竖式QSpliter和状态栏2个子部分,其中,竖式QSpliter管理5个子窗体,包括左侧工具栏、左侧停靠栏、中间容器、右侧停靠栏和右侧工具栏,中间容器又包括QWorkSpace窗体容器和底部停靠栏2个子部分。
上述区域2中,菜单栏和工具栏先通过QVBoxLayout对齐,合成为1个整体后,再通过QHBoxLayout和软件Logo图标窗体对齐,使用QLabel绘制显示软件Logo图标。
上述区域3中,左侧工具栏包含1个向右箭头的图标,点击该图标,显示左侧停靠栏;左侧停靠栏右上角有1个向左箭头的图标,点击该图标,隐藏左侧停靠栏;右侧工具栏包含1个向左箭头的图标,点击该图标,显示右侧停靠栏;右侧停靠栏右上角有1个向右箭头的图标,点击该图标,隐藏右侧停靠栏隐藏;底部停靠栏右上角有1个向下箭头的图标,点击该图标,将底部停靠栏缩小为1行,并在右上角显示1个向上箭头的图标,点击该图标,复原底部停靠栏。
上述区域3中,QWorkSpace管理的窗体均继承自QWidget,窗体基类有最大化、复原图标,点击最大化图标,则隐藏左侧、右侧、底部停靠栏,中间容器的窗体自适应扩大边界;点击复原图标,则显示左侧、右侧、底部停靠栏,恢复默认大小。
上述状态栏加载若干QPushButton,当区域3的QWorkspace新加入1个窗体时,在状态栏创建1个新的QPushButton,并显示该窗体的名称,点击状态栏上的QPushButton,则在QWorkSpace中将关联的窗体作为当前窗体前置显示;当QWorkSpace打开的窗体数量超过一定的数目时,状态栏改为显示QPushBttonGroup,按照窗体类型进行分组,相同类的窗体实例划分为1组。
上述主界面的各区域以及其子部分的默认背景色、得到/失去焦点的背景色、Layout的边框通过QSS样式表配置,通过加载不同的QSS表实现界面换肤功能。
采用上述方案后,本发明设计的软件主框架的顶层窗体QWidget由区域1、区域2、区域3组成,3个区域使用QVBoxLayout竖式对齐。其中区域1为主标题窗体,显示软件名字和当前打开的工程名称。区域2包括菜单栏、工具栏、软件LOGO窗体。区域3为QMainWindow,由QSpliter和状态栏组成。使用QSpliter作为中心窗体,依次竖式管理左侧工具栏、左侧停靠窗体、中间界面容器、右侧停靠窗体、右侧工具栏。中间界面容器分两个子区域,包括QWorkSpace工作空间、底部停靠窗体,使用横式排列。QWorkSpace用于管理各中子界面。整个软件的配色使用QSS的层次样式表设计,通过分层主界面框架,实现新型自定义软件界面风格。
本发明具有如下有益效果:实现了基于QT开发的软件主框架的自适应伸缩功能,通过QSS样式实现软件各个子区域风格、背景的可定制美化设置,实现了若干便捷的显示、隐藏,关联打开的便捷功能,提高了软件的操作方便性、界面美观度。
附图说明
图1是本发明实现的软件主界面框架示意图。
具体实施方式
以下将结合附图,对本发明的技术方案及有益效果进行详细说明。
如图1所示,本发明提供一种软件主界面框架设计方法,主界面使用QT跨平台库开发,最外层主窗体继承自QDialog或QWidget,划分为横式排列的3个区域,界面的背景和样式通过QSS样式表可配置,设计的软件主界面框架包括如下:
a)区域1:区域1继承自QWidget,是主框架的标题栏;
b)区域2:区域2继承自QWidget,包括3个子部分,分别显示菜单栏、工具栏、软件Logo图标;菜单栏、工具栏先通过QVBoxLayout对齐,合成为1个整体后,再通过QHBoxLayout和软件Logo图标窗体对齐,使用QLabel绘制显示软件Logo图标。
c)区域3:区域3继承自QMainWindow,划分为2个子部分,由竖式QSpliter(区域31)和状态栏(区域32)组成;其中,竖式QSpliter管理5个子窗体,包括左侧工具栏(区域311)、左侧停靠栏(区域312)、中间容器(区域313)、右侧停靠栏(区域314)和右侧工具栏(区域315),中间容器(区域313)又细分为2个子部分,包括QWorkSpace窗体容器(区域3131)和底部停靠栏(区域3132)。
所述的区域3中,左侧工具栏包含1个向右箭头的图标,点击该图标,可显示左侧停靠栏;左侧停靠栏右上角有1个向左箭头的图标,点击该图标,可隐藏左侧停靠栏。右侧工具栏包含1个向左箭头的图标,点击该图标,可显示右侧停靠栏;右侧停靠栏右上角有1个向右箭头的图标,点击该图标,可隐藏右侧停靠栏隐藏。底部停靠栏右上角有1个向下箭头的图标,点击该图标,可将底部停靠栏缩小为1行(隐藏内部的子窗体),并在右上角显示1个向上箭头的图标,点击该图标,可复原底部停靠栏(显示内部的子窗体)。所述的区域3中,QWorkSpace管理的窗体均继承自QWidget,窗体基类有最大化、复原图标,点击最大化图标,则隐藏左侧、右侧、底部停靠栏,中间容器的窗体自适应扩大边界;点击复原图标,则显示左侧、右侧、底部停靠栏,恢复默认大小。上述功能通过各个图标按钮响应鼠标的点击事件,通过QT的signal-slot机制编写对应的响应函数实现。
所述的状态栏加载若干QPushButton,当区域3的QWorkspace新加入1个窗体时,在状态栏创建1个新的QPushButton,并显示该窗体的名称,点击状态栏上的QPushButton,可在QWorkSpace中将关联的窗体作为当前窗体前置显示。当QWorkSpace打开的窗体数量超过一定的数目时(默认20个,可设置),状态栏改为显示QPushBttonGroup,按照窗体类型进行分组,相同类的窗体实例划分为1组,点击QPushButtonGroup,显示子菜单,列出同类型窗体实例,点击子菜单条目,在QWorkSpace窗体容器中前置显示该窗体。
主界面的各个区域、子区域的默认背景色、得到/失去焦点的背景色、Layout的边框等通过QSS样式表可配置,可加载不同的QSS表,实现界面换肤功能。优选地,QSS样式表可定义如下:
通过细化定义各个子部件的样式,可设置对应的背景色、边框等。在main函数中调用qApp->setStyleSheet(styleSheet)加载对应的样式表文件。
以上实施例仅为说明本发明的技术思想,不能以此限定本发明的保护范围,凡是按照本发明提出的技术思想,在技术方案基础上所做的任何改动,均落入本发明保护范围之内。
Claims (6)
1.一种软件主界面框架设计方法,其特征在于:主界面使用QT跨平台库开发,最外层主窗体继承自QDialog或QWidget,划分为横式排列的3个区域,界面的背景和样式通过QSS样式表配置,将主界面设计为包含如下3个区域:
区域1:区域1继承自QWidget,是主框架的标题栏;
区域2:区域2继承自QWidget,包括3个子部分,分别显示菜单栏、工具栏和软件Logo图标;
区域3:区域3继承自QMainWindow,划分为竖式QSpliter和状态栏2个子部分,其中,竖式QSpliter管理5个子窗体,包括左侧工具栏、左侧停靠栏、中间容器、右侧停靠栏和右侧工具栏,中间容器又包括QWorkSpace窗体容器和底部停靠栏2个子部分。
2.如权利要求1所述的一种软件主界面框架设计方法,其特征在于:所述区域2中,菜单栏和工具栏先通过QVBoxLayout对齐,合成为1个整体后,再通过QHBoxLayout和软件Logo图标窗体对齐,使用QLabel绘制显示软件Logo图标。
3.如权利要求1所述的一种软件主界面框架设计方法,其特征在于:所述区域3中,左侧工具栏包含1个向右箭头的图标,点击该图标,显示左侧停靠栏;左侧停靠栏右上角有1个向左箭头的图标,点击该图标,隐藏左侧停靠栏;右侧工具栏包含1个向左箭头的图标,点击该图标,显示右侧停靠栏;右侧停靠栏右上角有1个向右箭头的图标,点击该图标,隐藏右侧停靠栏隐藏;底部停靠栏右上角有1个向下箭头的图标,点击该图标,将底部停靠栏缩小为1行,并在右上角显示1个向上箭头的图标,点击该图标,复原底部停靠栏。
4.如权利要求1所述的一种软件主界面框架设计方法,其特征在于:所述区域3中,QWorkSpace管理的窗体均继承自QWidget,窗体基类有最大化、复原图标,点击最大化图标,则隐藏左侧、右侧、底部停靠栏,中间容器的窗体自适应扩大边界;点击复原图标,则显示左侧、右侧、底部停靠栏,恢复默认大小。
5.如权利要求1所述的一种软件主界面框架设计方法,其特征在于:所述状态栏加载若干QPushButton,当区域3的QWorkspace新加入1个窗体时,在状态栏创建1个新的QPushButton,并显示该窗体的名称,点击状态栏上的QPushButton,则在QWorkSpace中将关联的窗体作为当前窗体前置显示;当QWorkSpace打开的窗体数量超过一定的数目时,状态栏改为显示QPushBttonGroup,按照窗体类型进行分组,相同类的窗体实例划分为1组。
6.如权利要求1所述的一种软件主界面框架设计方法,其特征在于:所述主界面的各区域以及其子部分的默认背景色、得到/失去焦点的背景色、Layout的边框通过QSS样式表配置,通过加载不同的QSS表实现界面换肤功能。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810329021.6A CN108829390B (zh) | 2018-04-13 | 2018-04-13 | 一种软件主界面框架设计方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810329021.6A CN108829390B (zh) | 2018-04-13 | 2018-04-13 | 一种软件主界面框架设计方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108829390A true CN108829390A (zh) | 2018-11-16 |
CN108829390B CN108829390B (zh) | 2022-01-14 |
Family
ID=64155433
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810329021.6A Active CN108829390B (zh) | 2018-04-13 | 2018-04-13 | 一种软件主界面框架设计方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108829390B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110780962A (zh) * | 2019-10-15 | 2020-02-11 | 四川长虹电器股份有限公司 | X窗口管理器中应用窗口标题栏和窗口控件显示的方法 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102306085A (zh) * | 2011-09-22 | 2012-01-04 | 王金堃 | 多区域的浏览器和操控方法 |
US20160092336A1 (en) * | 2014-09-29 | 2016-03-31 | Radu-Florian Atanasiu | Code analysis for cloud-based integrated development environments |
-
2018
- 2018-04-13 CN CN201810329021.6A patent/CN108829390B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102306085A (zh) * | 2011-09-22 | 2012-01-04 | 王金堃 | 多区域的浏览器和操控方法 |
US20160092336A1 (en) * | 2014-09-29 | 2016-03-31 | Radu-Florian Atanasiu | Code analysis for cloud-based integrated development environments |
Non-Patent Citations (1)
Title |
---|
霍亚飞: "《Qt Creator快速入门(第3版)》", 31 January 2017, 北京航空航天大学出版社 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110780962A (zh) * | 2019-10-15 | 2020-02-11 | 四川长虹电器股份有限公司 | X窗口管理器中应用窗口标题栏和窗口控件显示的方法 |
CN110780962B (zh) * | 2019-10-15 | 2022-02-01 | 四川长虹电器股份有限公司 | X窗口管理器中应用窗口标题栏和窗口控件显示的方法 |
Also Published As
Publication number | Publication date |
---|---|
CN108829390B (zh) | 2022-01-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10691883B2 (en) | Infinite canvas | |
Matejka et al. | Patina: Dynamic heatmaps for visualizing application usage | |
US20220147701A1 (en) | Extended data grid components with multi-level navigation | |
TWI509495B (zh) | 視窗佈局動態調整系統及方法 | |
CN105938430B (zh) | 一种信息展示装置及方法 | |
US9703443B2 (en) | Method and system for creating a free-form visual user interface element | |
CN111881662A (zh) | 表单生成方法、装置、处理设备及存储介质 | |
US10210150B2 (en) | Grid-based user interface system | |
CN107391656B (zh) | 基于蒙版的web表单设计方法 | |
US20170352174A1 (en) | Method and system for visual data management | |
CN107402729A (zh) | 打印模板构建方法及模板打印方法 | |
CN104182225A (zh) | 一种通用移动信息系统适配方法与装置 | |
CN110162342A (zh) | 实现页面可配置的方法 | |
CN109254770A (zh) | 图形化编程平台下的自定义按钮样式的方法及电子设备 | |
CN104182226B (zh) | 一种通用移动信息系统适配方法与装置 | |
CN111783405A (zh) | 在线文档处理方法、装置、计算机设备和存储介质 | |
CN108829390A (zh) | 一种软件主界面框架设计方法 | |
CN109543171A (zh) | 一种键盘录入和手写签批的电子表单实现方法及系统 | |
CN106776509A (zh) | 一种电子表单生成方法及装置 | |
Adams | Fon Appliqued Cloths | |
KR101966177B1 (ko) | 다중 다차원 속성을 가진 스프레드 시트 처리 방법 및 시스템 | |
Dostál et al. | Fine-grained adaptive user interface for personalization of a word processor: principles and a preliminary study | |
CN104503669A (zh) | 一种界面组件及其产生方法 | |
CN100573447C (zh) | 图形用户界面的组态方法 | |
US20080180413A1 (en) | Method, system, and program product for controlling grid lines in a user interface |
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 |