基于Qt的电视机UI实现技术精选.doc

  1. 1、本文档共30页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
基于Qt的电视机UI实现技术精选

基于Qt技术的可移植UI设计 —— 基于Qt的电视机UI实现技术 1 UI软件架构 基于Qt来实现一套电视机用户界面(User Interface)—QSplitter。QSplitter作为一个容器可以容纳多个窗口部件,此时中央部件是一个包容多个窗口部件的容器; 多文档区部件—QMdiArea。如果应用程序使用MDI,则Central Widget将被一个QMdiArea部件占据。每个MDI窗口都是这个QMdiArea部件的一个子部件。 应用程序选择哪种类型作为Central Widget,需要由具体需求决定。电视机UI通常具有主菜单、一级子菜单、二级子菜单、快捷菜单、信息提示菜单等多个菜单显示页面。本项目将每个菜单页面视作一个文档(Document),各级菜单之间的切换,采用多文档界面(Multiple Document Interface)模式进行管理,因此选择QMdiArea作为主窗口的Central Widget。通过调用QMainWindow的setCentralWidget()方法来设置Central Widget。 QMdiArea提供了一个管理/显示多文档界面的区域。它通常作为应用程序多文档界面主窗口的Central Widget,实现对子窗口的管理、绘制和排布。QMdiArea具有独特的多文档子窗口类QMdiSubWindow,它在多文档区部件内表现为一个顶层窗口,可以关闭、最小化和最大化,具有独立的窗口标题。QMdiSubWindow具有自己的布局管理器,该布局管理器管理窗口标题栏和放置窗口部件的中心区域。多文档子窗口QMdiSubWindow和多文档区部件QMdiArea共同实现应用程序的多文档功能。通常通过调用函数QMdiArea::addSubWindow()为一个多文档部件添加一个多文档窗口,并返回该多文档子窗口的指针。 总结:一个基于MDI的Qt Main Window 框架,由QMainWindow、QMdiArea、QMdiSubWindow三个核心类构成。其中, QMainWindow类主要提供了一个应用程序的主窗口,在主窗口中提供了 Central Widget区域,用于页面管理。 QMdiArea类被设置成Central Widget,实行具体的子窗口管理任务;在QMdiArea中加入的每个子窗口都是QMdiSubWindow类或其派生类的对象;该类负责管理菜单页面的创建、销毁、显示、隐藏等等。需要注意的是,新菜单创建、老菜单销毁过程中,要防止内存泄露;此外,如何高效快速完成菜单间的切换是非常重要的。 QMdiSubWindow类是具体的每个子窗口,或者称为子菜单页面的基类;实际的电视机主菜单、图像子菜单、声音子菜单等等的实现,均由该类派生。 1.2 Qt的Main Window 框架的实际应用 实际应用中,将根据具体的UI方案需求,以QMainWindow、QMdiArea、QMdiSubWindow三个类作为基类,派生出满足需求的类加以应用。 本项目中,由QMainWindow作为基类,派生出MainWindow类,除去基本的继承自QMainWindow的属性外,在MainWindow的构造函数中,加入了对主窗口几何位置、尺寸的设定;加入了主窗口背景属性的设定。最后将由QMdiArea类派生来的WindowHandler类的对象设置为Central Widget。 本项目中,由QMdiArea作为基类,派生出WindowHandler类,用以实现菜单页面的管理。WindowHandler类中添加了用于页面之间跳转的槽函数slot_GotoScreen(int curSID, int dstSID, int param); 添加了注册各子菜单页面的函数 RegisterWindow(int nKey); 并给予每页菜单一个独一无二的ID号,将ID号与指向该页面类型的指针函数以key-value对的形式存放于QMapint, SFunc* m_mapSc中,来动态的创建、销毁指定ID号的子菜单。 本项目中,由QMdiSubWindow作为基类,派生出MdiSubWindow类。在MdiSubWindow中添加了用于页面跳转的信号 void sig_goto_screen(int curSID, int dstSID, int param); 添加了公共参数用于接收前一页菜单传递过来的参数 int m_PrevWindow_Param; 在构造函数中增加了设置窗口标志的语句 setWindowFlags(Qt::FramelessWindowHint); 在具体菜单页面实现时,跟菜单、主菜单、设置菜单在MdiSubWindow的基础上派生出了BaseMenu、Ma

文档评论(0)

feixiang2017 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档