CN102270135A - 电视机及其用户界面框架的实现方法 - Google Patents
电视机及其用户界面框架的实现方法 Download PDFInfo
- Publication number
- CN102270135A CN102270135A CN2011102281646A CN201110228164A CN102270135A CN 102270135 A CN102270135 A CN 102270135A CN 2011102281646 A CN2011102281646 A CN 2011102281646A CN 201110228164 A CN201110228164 A CN 201110228164A CN 102270135 A CN102270135 A CN 102270135A
- Authority
- CN
- China
- Prior art keywords
- screen
- class
- message
- user interface
- window
- 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
Images
Landscapes
- User Interface Of Digital Computer (AREA)
- Digital Computer Display Output (AREA)
Abstract
本发明公开一种电视机及其用户界面框架的实现方法。其中。所述方法包括步骤:创建一个基于QT开发平台应用程序的UI封装类;在UI封装类中创建一个用于管理各级屏的屏处理类,屏处理类通过安全标识符注册各级屏的ID,建立SID对应表使各级屏分别与一个ID建立对应关系,并注册2个槽用于分别侦听遥控器消息和系统消息;在屏处理类中创建一个是各级屏直接或者间接父窗口的基窗口,根据各级屏之间的继承关系进行切屏控制。本发明在各个电视系统平台具有很好的移植性,且由屏处理类统一对各级屏的构造、切换、消息处理等进行管理,带来更好、更快的切屏效果;本发明提出的UI框架结构简单,易于实现。
Description
技术领域
本发明涉及一种电视机中的用户界面框架,尤其是涉及一种在电视机中的基于QT开发平台实现用户界面框架的方法,以及使用该方法的电视机。
背景技术
在电视行业飞速发展的今天,电视机已经不仅仅是用来只收看电视节目的终端,而是被定义成家庭娱乐中心的载体。因此,当今的电视机功能也成为了各个电视机厂商的各种卖点。比如说网络看电影、模拟游戏平台、3D动感游戏、网络互动应用等等。这对于用户来说是一种很好的体验,也是生活质量提升的体现,但是对于电视机系统的设计而言,这将是一个不小的挑战,因为功能越多,各种功能需要实现用户界面也就越复杂,问题的出现也就越频繁。
传统的电视机的用户界面(UI)框架基本都是由各个方案公司针对平台本身而设计的UI框架。这样,对于某一平台上的某个模块功能移植到另一平台,往往需要花费大量的时间和精力。
发明内容
本发明提出一种电视机及其用户界面框架的实现方法,以解决目前电视机中用户界面结构复杂、难于移植的技术问题。
本发明采用如下技术方案实现:一种电视机用户界面框架的实现方法,其特包括步骤:
创建一个基于QT开发平台应用程序的UI封装类;
在UI封装类中创建一个用于管理各级屏的屏处理类,屏处理类通过安全标识符注册各级屏的ID,建立SID对应表使各级屏分别与一个ID建立对应关系,并注册2个槽用于分别侦听遥控器消息和系统消息;
在屏处理类中创建一个是各级屏直接或者间接父窗口的基窗口,根据各级屏之间的继承关系进行切屏控制。
在一个优选实施例中,所述电视机用户界面的实现方法还包括步骤:
新建并显示基窗口的主界面;
等待遥控器消息或系统消息,根据响应遥控器消息或系统消息启动切屏操作。
在一个优选实施例中, 在当前屏收到遥控器消息或系统消息需要进入下一级屏时,所述切屏操作的步骤包括:
检验SID对应表中下一级屏的ID是否与下一级屏的窗口句柄对应;
运行当前屏的离开函数,隐藏当前屏;
以当前屏为父窗口构造一个子屏作为下一级屏的界面,并将当前屏的参数指派给下一级屏;
将构造的下一级屏作为新的当前屏激活并显示,且将接受到的遥控器消息或系统消息过滤送到新的当前屏进行处理。
在一个优选实施例中,在当前屏收到遥控器消息或系统消息需要返回上一级屏时,所述切屏操作的步骤包括:当前屏析构函数销毁自己,并调用返回函数返回到父窗口。
在一个优选实施例中,在当前屏收到遥控器消息或系统消息跳转至非上一级屏或非下一级屏的目标屏时,所述切屏操作的步骤包括:
检验SID对应表中目标屏的ID是否与目标屏的窗口句柄对应;
运行跳屏函数直到新的当前屏ID为目标屏的ID;
由跳屏函数将当前屏的参数指派给新的当前屏;
显示并激活新的当前屏。
在一个优选实施例中,在当前屏收到遥控器消息或系统消息需要返回基窗口时,所述切屏操作的步骤包括:删除到期所有的活动屏,并显示基窗口。
其中,UI封装类是通过分别继承QT开发平台中的QMdiArea类和QMdiSubWindow类来封装。
其中,基窗口为一个大小于电视机显示屏一致的黑屏。
与现有技术相比,本发明具有如下有益效果:
本发明解决目前电视机中跨平台实现用户界面(UI)移植困难的问题,提供一个通用的UI开发框架来完成各个功能模块的快速开发或移植工作,标准化了界面切换接口、简化了各界面之间的消息处理;在UI框架中封装了一个专门的屏处理类(CSc_Scene类),统一对各级屏的构造、切换、消息处理等进行管理,带来更好、更快的切屏效果;且本发明提出的UI结构简单,易于实现。
附图说明
图1是本发明UI的框架示意图;
图2是本发明实现UI的流程示意图;
图3是本发明UI中屏处理类控制切屏操作的示意图。
具体实施方式
本发明是一种由计算机程序来实现的技术方案,在Linux操作系统中基于QT开发平台(QT是诺基亚开发的一个跨平台的C++图形用户界面应用程序框架。它提供给应用程序开发者建立艺术级的图形用户界面所需的所用功能。QT是完全面向对象的,很容易扩展,并且允许真正地组件编程)面向对象的C++类来构建电视机中可跨平台移植上的用户界面(UI,User Interface),实现更佳的切屏控制。
如图1所示,通过QT开发平台中的QMainWindows类来实现主窗口,由QT开发平台中的QMdiSubWindow类实现子窗口,主窗口与被子窗口裁减后的区域由QT开发平台中的QMdiArea类实现。
通过分别继承QT开发平台中的QMdiArea类和QMdiSubWindow类来封装CSkyScreenHandler和CSkyScreen两个基本类。本发明设计的视窗MDI(Multiple Document Interface)可以支持多窗口系统,利用CSc_Scene类(屏处理类)来提供一个多窗口区域来管理QT开发平台的sub-window(子窗口),CSc_Scene类会管理图1中CSc_MainMenu等一系列子视窗(图1中仅列出少数一部分),并为每个这样的子视窗定义一个安全标识符(SID,Security Identifiers)来对应各个子视窗的窗口句柄(指针)。这些子视窗都继承自CSkyScreen类,由它们的命名可以知道,又称这些子视窗为Screen(屏),而CSc_Scene类拥有这些子视窗(Screen)并且管理这些子视窗的生死。
各级屏(即子视窗)之间的切换最终都经由CSc_Scene类来完成,不仅如此,CSc_Scene类还管理着各级屏的创建和销毁。在CSc_Scene类的构造函数里面,会利用RegisterScreens()把各级屏分别与一个ID建立SID对应表,方便用户利用ID来切换和搜索各级屏。
结合图2所示,本发明在UI界面创建窗口框架的流程如下:
S1:在主入口(main)函数中新建一个UI封装类CSkyUi(是通过分别继承QT开发平台中的QMdiArea类和QMdiSubWindow类来封装),它是基于QT开发平台的应用程序的窗口框架。
S2:在UI封装类中新建一个CSc_Scene类容器实例,用它来管理各级子窗口(屏)。
S3:在CSc_Scene类中通过安全标识符(SID)注册所有界面的屏(Screen),即:在CSc_Scene类的构造函数里面,会利用RegisterScreens()把各级屏分别与一个ID建立SID对应表,方便用户利用ID来切换和搜索各级屏。
S4:在CSc_Scene类中注册2个槽(Socket)来侦听遥控器消息和系统消息,并实现收到消息后的槽处理响应函数,最后建立信号和槽之间的连接。
S5:最后在CSc_Scene类中创建一个基窗口CSc_Base,一般设置为电视屏幕尺寸的黑屏窗口,它是其他所有子窗口的直接或者间接父窗口,它一般情况下不会被销毁,除非在QT进程退出的时候才销毁。
S6:判断电视机开机通道是否为与UI关联的通道(需要创建UI的通道),若是,则转入步骤S7,否则转入步骤S9。
S7:自动在CSc_Base类的基础上新建CSc_MainMenu(主界面)。
S8:显示开机动画界面,并等待遥控器消息或者系统消息。
S9:显示CSc_Base基窗口的主界面(即黑屏),并等待遥控器消息或者系统消息。
如图3所示,本发明在UI框架内封装了一个专门的屏处理类(CSc_Scene类),统一对屏构造、屏切换、消息处理等进行管理,带来更好更快的切屏效果。
CSc_Scene类对各级屏最关键的操作是屏切换时的处理工作。当第一级屏界面需要收到遥控消息需要进入到第二级屏界面时,CSc_Scene类需要隐藏第一级屏并以第一级屏为父窗口构造一个子屏作为第二级屏界面;同时,将构造的第二级屏作为当前焦点屏(当前屏),并将接受到的遥控和系统消息过滤送到当前屏来处理。如果当前屏接受到返回命令,则调用析构函数销毁自己并返回到父窗口(第一级屏);如果当前屏接受到确定按键需要进入下一级屏窗口界面,则调用离开(leave)函数,隐藏自己到后台,并以自己为父窗口构造一个子窗口作为下一级屏界面。
如果硬件支持,我们可以在离开和返回函数中加入动画特效,这样屏幕切换时会有更好的用户体验。
本发明的技术关键点是框架中切换屏的处理流程,因为屏切换时需要处理好参数传递、屏分配与销毁、激活显示与隐藏、切换消息处理、过场动画、父子关系继承等问题,因此对屏切换流程的管理是一件很重要和复杂的事情。
在进行屏切换时,尤其需要处理好参数传递、屏分配与销毁、激活显示与隐藏、切换消息处理、父子关系继承等问题。
举例来进一步说明本发明是如何实现屏切换操作。假定:一级界面为主界面(Sc_MainMenu),二级界面为USB浏览窗口(Sc_USBView),三级界面是电影播放界面(Sc_MMPlayerView)。我们以此三级界面的四种屏切换操作来具体分析:
一、切换到下一级屏:例如,从当前的USB浏览窗口切换到电影播放界面,只需在CSc_USBView类中调用SKY_NextScreen(SID_MediaPlayer,param)函数即可切换到。
电影播放界面(Sc_MMPlayerView)是USB浏览窗口(Sc_USBView)的子屏,电影播放界面作为父屏隐藏但不销毁。
其中,SKY_NextScreen函数分5个步骤来实现:首先,检查SID和新屏的窗口句柄是否对应;其次,运行当前屏的离开(leave)函数;再次,创建一个新屏(构造);然后,将参数param指派给新屏;最后,显示并激活新屏Sc_MMPlayerView。
二、返回到上一级屏:例如从电影播放界面(Sc_MMPlayerView)返回到USB浏览窗口(Sc_USBView):
在CSc_MMPlayerView类中调用SKY_PrevScreen(param)函数即可返回到Sc_USBView父屏,子屏(即电影播放界面)销毁。SKY_PrevScreen函数分3个步骤来实现:首先,关闭和删除当前屏(反构造);其次,将参数param指派给父屏的返回函数;显示并激活父屏(USB浏览窗口)。
三、跳转到某一级屏:例如,从Sc_MMPlayerView屏跳转到Sc_MainMenu屏:在CSc_MMPlayerView类中调用跳屏函数SKY_GotoScreen(SID,param)即可跳转到Sc_USBView的父屏,自己(即:Sc_MMPlayerView)和二级父窗口(即:Sc_USBView)均被销毁。
其中,跳屏函数SKY_GotoScreen分4个步骤来实现:首先,检查SID和新屏的窗口句柄是否对应;其次,运行跳屏函数SKY_PrevScreen(param),直到当前屏的ID=SID;再次,将参数param指派给要跳转屏的返回函数;最后,显示并激活父屏Sc_MainMenu。
三、删除所有活动的屏:例如,从Sc_MMPlayerView屏跳转到Sc_Base屏:在CSc_MMPlayerView类中调用SKY_CloseScreens ()函数即删除到期所有的活动屏,所有活动屏均被销毁。其中,SKY_CloseScreens函数分2个步骤来实现:首先,直接调用SKY_GotoScreen(SID_Base,0);其次,显示基窗口Sc_Base。
综上,本发明是解决目前电视机系统中UI功能模块在不同系统平台之间的移植困难问题。同传统的各方案公司UI框架相比,本发明基于QT开发平台完成的UI框架,在UI功能模块跨平台移植上有明显的优势;同时,传统基于QT的应用程序一般采用简单的信号和槽来实现切换界面,效率比较低,消息或者参数传递不太方便,在本发明的UI框架内封装了一个专门的屏处理类(CSc_Scene类),统一对各级屏的构造、切换、消息处理等进行管理,带来更好、更快的切屏效果,尤其是在硬件可加速的情况下,可以在屏切换时增加动画过度画面,从而带来更好用户体验。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
Claims (9)
1.一种电视机用户界面框架的实现方法,其特征在于,所述方法包括步骤:
创建一个基于QT开发平台应用程序的UI封装类;
在UI封装类中创建一个用于管理各级屏的屏处理类,屏处理类通过安全标识符注册各级屏的ID,建立SID对应表使各级屏分别与一个ID建立对应关系,并注册2个槽用于分别侦听遥控器消息和系统消息;
在屏处理类中创建一个是各级屏直接或者间接父窗口的基窗口,根据各级屏之间的继承关系进行切屏控制。
2.根据权利要求1所述电视机用户界面框架的实现方法,其特征在于,所述方法还包括步骤:
新建并显示基窗口的主界面;
等待遥控器消息或系统消息,根据响应遥控器消息或系统消息启动切屏操作。
3.根据权利要求2所述电视机用户界面框架的实现方法,其特征在于, 在当前屏收到遥控器消息或系统消息需要进入下一级屏时,所述切屏操作的步骤包括:
检验SID对应表中下一级屏的ID是否与下一级屏的窗口句柄对应;
运行当前屏的离开函数,隐藏当前屏;
以当前屏为父窗口构造一个子屏作为下一级屏的界面,并将当前屏的参数指派给下一级屏;
将构造的下一级屏作为新的当前屏激活并显示,且将接受到的遥控器消息或系统消息过滤送到新的当前屏进行处理。
4.根据权利要求2所述电视机用户界面框架的实现方法,其特征在于,在当前屏收到遥控器消息或系统消息需要返回上一级屏时,所述切屏操作的步骤包括:当前屏析构函数销毁自己,并调用返回函数返回到父窗口。
5.根据权利要求2所述电视机用户界面框架的实现方法,其特征在于,在当前屏收到遥控器消息或系统消息跳转至非上一级屏或非下一级屏的目标屏时,所述切屏操作的步骤包括:
检验SID对应表中目标屏的ID是否与目标屏的窗口句柄对应;
运行跳屏函数直到新的当前屏ID为目标屏的ID;
由跳屏函数将当前屏的参数指派给新的当前屏;
显示并激活新的当前屏。
6.根据权利要求5所述电视机用户界面框架的实现方法,其特征在于,在当前屏收到遥控器消息或系统消息需要返回基窗口时,所述切屏操作的步骤包括:删除到期所有的活动屏,并显示基窗口。
7.根据权利要求1所述电视机用户界面框架的实现方法,其特征在于,UI封装类是通过分别继承QT开发平台中的QMdiArea类和QMdiSubWindow类来封装。
8.根据权利要求1所述电视机用户界面框架的实现方法,其特征在于,基窗口为一个大小于电视机显示屏一致的黑屏。
9.一种电视机,其特征在于,使用了如权利要求1-8任何一项所述电视机用户界面框架的实现方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201110228164.6A CN102270135B (zh) | 2011-08-10 | 2011-08-10 | 电视机及其用户界面框架的实现方法 |
HK12101462.3A HK1167474A1 (en) | 2011-08-10 | 2012-02-15 | Televisions together their users interface framework implementation method |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201110228164.6A CN102270135B (zh) | 2011-08-10 | 2011-08-10 | 电视机及其用户界面框架的实现方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102270135A true CN102270135A (zh) | 2011-12-07 |
CN102270135B CN102270135B (zh) | 2014-03-05 |
Family
ID=45052446
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201110228164.6A Active CN102270135B (zh) | 2011-08-10 | 2011-08-10 | 电视机及其用户界面框架的实现方法 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN102270135B (zh) |
HK (1) | HK1167474A1 (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103648038A (zh) * | 2013-11-15 | 2014-03-19 | 乐视致新电子科技(天津)有限公司 | 智能电视的窗体显示控制方法和控制装置 |
CN107404664A (zh) * | 2017-07-17 | 2017-11-28 | 深圳创维-Rgb电子有限公司 | 一种绘制多路通道ui的方法、智能设备和存储介质 |
CN109656555A (zh) * | 2018-11-30 | 2019-04-19 | 深圳市汇川技术股份有限公司 | 操作界面实现方法、系统、机器人示教器及存储介质 |
CN111580768A (zh) * | 2020-05-07 | 2020-08-25 | 联想(北京)有限公司 | 一种控制方法及装置 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0694834A1 (en) * | 1994-06-30 | 1996-01-31 | Canon Kabushiki Kaisha | User interface for multiple child windows |
CN101083748A (zh) * | 2006-05-29 | 2007-12-05 | 腾讯科技(深圳)有限公司 | 一种视频画面切换方法 |
CN101719132A (zh) * | 2009-12-25 | 2010-06-02 | 金蝶软件(中国)有限公司 | 一种页签生成装置和应用系统 |
-
2011
- 2011-08-10 CN CN201110228164.6A patent/CN102270135B/zh active Active
-
2012
- 2012-02-15 HK HK12101462.3A patent/HK1167474A1/xx unknown
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0694834A1 (en) * | 1994-06-30 | 1996-01-31 | Canon Kabushiki Kaisha | User interface for multiple child windows |
CN101083748A (zh) * | 2006-05-29 | 2007-12-05 | 腾讯科技(深圳)有限公司 | 一种视频画面切换方法 |
CN101719132A (zh) * | 2009-12-25 | 2010-06-02 | 金蝶软件(中国)有限公司 | 一种页签生成装置和应用系统 |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103648038A (zh) * | 2013-11-15 | 2014-03-19 | 乐视致新电子科技(天津)有限公司 | 智能电视的窗体显示控制方法和控制装置 |
CN103648038B (zh) * | 2013-11-15 | 2018-06-01 | 乐视致新电子科技(天津)有限公司 | 智能电视的窗体显示控制方法和控制装置 |
CN107404664A (zh) * | 2017-07-17 | 2017-11-28 | 深圳创维-Rgb电子有限公司 | 一种绘制多路通道ui的方法、智能设备和存储介质 |
CN107404664B (zh) * | 2017-07-17 | 2019-11-05 | 深圳创维-Rgb电子有限公司 | 一种绘制多路通道ui的方法、智能设备和存储介质 |
CN109656555A (zh) * | 2018-11-30 | 2019-04-19 | 深圳市汇川技术股份有限公司 | 操作界面实现方法、系统、机器人示教器及存储介质 |
CN111580768A (zh) * | 2020-05-07 | 2020-08-25 | 联想(北京)有限公司 | 一种控制方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
HK1167474A1 (en) | 2012-11-30 |
CN102270135B (zh) | 2014-03-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103336691B (zh) | 一种基于Android的动态布局方法及系统 | |
CN101833465B (zh) | 一种支持应用程序动态加载运行的嵌入式系统 | |
EP1285337B1 (en) | Displaying graphical objects | |
CN102479097B (zh) | 一种支持多级加载的安全嵌入式操作系统 | |
CN102270135B (zh) | 电视机及其用户界面框架的实现方法 | |
CN104427388A (zh) | 一种智能电视操作系统 | |
US20220086522A1 (en) | Display method, display terminal and non-transitory computer readable storage medium | |
CN102905181A (zh) | 一种实现移动终端在线播放视频的方法、底层库和系统 | |
WO2013007141A1 (zh) | 面向业务模型的软件运行平台及其运行方式 | |
CN102054173B (zh) | 在智能卡上集成多电信应用的方法及其智能卡 | |
CN104199691B (zh) | 一种基于安卓平台的开机自启动apk的方法及终端 | |
CN103019766B (zh) | 一种基于Android设备的动态壁纸设置方法、装置及终端 | |
CN101807168A (zh) | 一种支持版本兼容的数字终端测试环境及其构建方法 | |
CN104469504A (zh) | 实现Android智能电视快速开机的方法 | |
CN104156217A (zh) | 一种屏幕内容共享的方法、装置及移动终端 | |
CN103645924A (zh) | 嵌入式设备程序参数管理方法及装置 | |
CN106448779B (zh) | 核电厂主控室屏幕联动控制方法及装置 | |
CN101764971B (zh) | 一种在屏显示装置及其在屏显示方法 | |
CN104899150A (zh) | 基于面向对象的自动化测试方法及系统、和自动化平台 | |
CN107291319A (zh) | 一种窗口显示方法、信息交互方法及系统 | |
CN103226491A (zh) | 一种设置应用程序状态的方法及装置 | |
CN106030523A (zh) | 一种在手机桌面上实现3d动效交互的方法及装置 | |
CN102364434B (zh) | 一种整合Wine与Android鼠标输入的方法 | |
WO2020082471A1 (zh) | 灯效控制方法、控制单元、智能终端及计算机可读存储介质 | |
CN103399873A (zh) | 虚拟现实系统的数据库动态加载管理方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: DE Ref document number: 1167474 Country of ref document: HK |
|
GR01 | Patent grant | ||
GR01 | Patent grant | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: GR Ref document number: 1167474 Country of ref document: HK |