1.Qt简介
Qt是Trolltech公司的标志性产品(现Trolltech公司已被手机巨子NOKIA公司收买),是一个跨渠道的C++图形用户界面(GUI)东西包。它既能够开发GUI程式,也可用于开发非GUI程式,比方操控台东西和服务器。Qt是面向目标言语,易于扩展,而且答应组件编程。Qt运用程序接口与东西兼容于一切支撑渠道,让开发员们把握一个运用程序接口便可履行与渠道非相关的运用开发与装备。
Qt支撑下述渠道:
1)MS/Windows-95、98、NT 4.0、ME、2000、XP、Vista和Win7;
2)Unix/X11-Linux、Sun Solaris、HPUX、CompaqTru64 UNIX、IBM AIX、SGI IRIX、FreeBSD、BSD/OS和其它许多X11渠道;3)Macintosh-Mac OS X;
4)Embedded-有帧缓冲(framebuffer)支撑的嵌入式Linux渠道,Windows CE.
Qt对不同渠道的专门API进行了专门的封装(文件处理、网络等)。
Qt被Nokia收买后推出了一款新的轻量级集成开发环境(IDE)Qt Creator.QtCreator可带来两大要害好处:供给首个专为支撑跨渠道开发而规划的集成开发环境(IDE),并保证初次触摸Qt结构的开发人员能敏捷上手和操作。
Qt Creator包含了一套用于创立和测验根据Qt运用程序的高效东西,包含:一个高档的C++代码编辑器、上下文感知协助体系、可视化调试器、源代码办理、项目和构建办理东西。
Qt/Embedded(简称QT/E)是一个专门为嵌入式体系规划图形用户界面的东西包,是NOKIA公司的图形化界面开发东西Qt的嵌入式版别,它经过QtAPI与LinuxI/O以及Framebuffer直接交互,具有较高的运转功率,而且全体选用面向目标编程,具有杰出地体系架构和编程形式。
Qt/embedded和Qt相同,在4.5版别之后供给了三种不同的授权协议GPL,LGPL和Commercial.开发者运用QT/E开发的运用程序要移植到不同渠道时,只需要从头编译代码,而不需要对代码进行修正。并能够随意设置程序界面的外观、方便地为程序衔接数据库、使程序本地化、将程序与Java集成等。
2.运用Qt Creator规划界面
在Qt Creator中完结车载播映器工程的创立后首先是规划界面。界面可用代码生成,也可用Qt Designer辅助规划。运用Qt Designer规划界面只需将界面中所需的窗口部件拖入ui界面文件中,然后设置特点修正其显现作用,最终运用布局控件设置布局作用。经过拖放窗口部件完结的界面在布局上不行准确,因而本体系选用纯代码来完结界面开发。
本体系的界面首要包含的窗口部件有Table View、Push Button等。在界面的布局上,体系选用了手艺布局方法。
手艺布局方法经过基类Q W i d g e t供给的setGeometry()函数来设置子窗口部件的方位和巨细,当窗口巨细改动的时分,从头核算窗口的巨细或许改动份额,然后重载QWidget::resizeEvent(QResizeEvent*)函数,能够使得子窗口部件的巨细和方位作出适应性的改动。
如图1所示为本体系的主界面:
界面规划的首要开发进程如下:
1)使根底窗口QWidget承继于主窗口QMainWindow,窗体结构函数担任模板的初始化;
2)创立MyButton类结构窗体按钮部件,并对窗口部件中运用的目标以及函数进行声明,包含图标、称号、字体、文本、坐标、画笔、按钮是否有用、重绘时刻、鼠标按下事情等;
3)增加按钮的信号与槽。体系界面中每个功用按钮都对应一个信号和槽,信号和槽式Qt编程的核心技术,经过信号能够将界面上的空间所发生的事情进行发射,槽函数担任承受相应信号并作出呼应处理。如播映暂停按钮,与其对应的信号是单击,它的单击信号衔接一个槽处理函数,在这个函数中经过QProcess来向slave形式下的MPlayer发送指令,到达操控播映的意图。其他的控件在处理方法上都与播映暂停按钮类似,都有自己得信号和槽。
3.软件功用模块规划
机车车辆车载播映器首要由音频播映和视频播映两大部分组成,这两部分存在着许多相同和类似的功用,为防止重复编码,选用C++面向目标的模块化规划思维,将两部分中功用类似的部分抽取出来,构成独立的功用模块,提高了软件的可重用性和体系的运转功率。各功用模块均选用C++类来完成,对模块内部的数据进行封转,对外供给接口供外部调用,一方面提高了体系的数据安全性,另一方面也使软件编码愈加的标准。
为完成机车车辆车载播映体系的功用,创立了窗体文件用于设置车载播映器的窗体;创立了装备文件用于处理体系装备信息;创立了用于完成对数据库操作的源文件;创立了触摸屏操控文件以及歌曲列表文件。
详细功用模块规划方法如下:
1)查找歌曲
点击查找歌曲按钮时,跳出一个对话框,当用户输入了歌曲名或称号中的部分内容并确认后,发送音讯到服务器端,服务器端对表song进行含糊查询,得到契合的歌曲列表,将这些信息回来给客户端,在客户端构成一个QwidgetTable控件,用来显现查找的成果。当用户点击其间的一行时,将相应行的歌曲信息赋值给current并播映。
2)上一首
上一首按钮衔接了prev()函数,它的功用是经过prev()函数来完成的。在此函数中,完成读取usersong.xml文件中方位为songpos-1的歌曲信息,赋值给current,然后进行播映,完成上一首功用。
3)播映
当点击播映按钮时,躲藏播映按钮,显现暂停按钮,并读取c u r r e n t中的信息,经过Phonon的函数play()完成播映。
4)暂停
当点击暂停按钮时,躲藏暂停按钮,显现播映按钮,调用Phonon中的pause()函数,将播映暂停。
5)下一首
当点击下一首按钮时,调用nextFile()函数,而且当歌曲播映完之后会发生一个aboutToFinish()信号,这个时分也会调用nextFile()函数。在此函数中调用readinformation()函数,得到下一首的信息,并播映。