基于嵌入式Linux的MP3播放器的设计与实现毕业设计论文(8)

2019-04-14 12:04

南京工程学院毕业设计说明书(论文)

Qt提供了信号与插槽的组件化编程机制和多种多样的图形设计、事件处

理、进程控制的类[7]。而connect则是Qt中最重要的特征,其在Qt对象之间建立了一种单向的连接。每一个 Qt对象都拥有信号(Signals)和槽(Slots) , 信号用于发送消息,而槽则被用来接收消息。

从更高层次来看,信号与插槽是Qt自行定义的一种高级接口,应用于对

象之间的通信,独立于标准的C/C++语言。 在Qt中,信号和槽取代了C/C++语言中的函数和指针 [8]。编程时,信号(槽)之间会通过相互关联来实现类似于C/C++语言中的函数调用和交互。

基于Qt的MP3播放器的界面设计主要有以下两个方面:a.桌面突变的实现。Qt中有各种图形和按钮的类。Qt Creator是Qt自带的GUI设计工具,可以设置按钮的一些相关信息,如按钮位置,按钮大小,以及按钮名称和样式等。b.外部事件的响应。信号和槽是 QT 自行定义的一种通信机制,它独立于标准的 C/C++ 语言,因此要正确的处理信号和槽,须借助Qt中的MOC(Meta Object Compiler)工具。该工具是一个 C++ 预处理程序,它为高层次的事件处理自动生成所需要的附加代码。Qt/E体系结构如图4.4所示,深色斜体标出的三个层次代表Qt/E。

上层应用程序 Qt/E 提供的API Qt/E 内核 图形抽象层 FrameBuffer层 输入抽象层 输入设备驱动 操作系统内核 引导程序 底层硬件 图4.4 Qt/E体系结构

Qt/E作为GUI提供了用户界面,利用内核帧缓冲来向LCD屏幕输出,消

除对特定架构的依赖,从而保证可移植性,应用程序可以通过一组事先就定义

31

南京工程学院毕业设计说明书(论文)

好的接口来直接操作显示设备。比如,本次毕业设计众的MP3播放器这个个上层应用程序,可以方便地移植到不同平台。

Qt/E同Qt X11的架构是不同的,会直接操作Frame Buffer。Frame Buffer

实际上是对图形硬件设备的抽象,即将显示设备抽象为帧缓冲区。

QT/E可以直接操纵内核FrameBuffer,将解码后的数据通过FrameBuffer直接送到嵌入式Linux系统的帧缓冲区,这样LCD屏幕上就会显示相关的文字、图片或者视频了。

4.4.2利用Qt Creator 开发应用程序流程

Qt Creator 设计器是一个提供GUI的设计工具。基于 Qt/E的图形用户

界面应用程序的基本开发流程[9]如图 4.5 所示

利用Qt Creator创建工程 利用Qt Creator创建主窗体 生成头文件和实现文件 编写主函数 编辑工程生成Makefile文件 编译链接工程文件

图4.5利用Qt开发GUI程序的流程

使用make这个命令的相关功能可以进行编译过程的命令简化。make会在当前目录下搜索makefile这个文本文件,而makefile里面记录了源码如何编译的详细信息[10]。

生成Makefile文件由开发软件自动实现,不需用户手动生成。

32

南京工程学院毕业设计说明书(论文)

4.4.3 程序模块间关系图

本次毕业设计的MP3播放器模块间的工作关系如图4.6所示。

图形界面 输入和输出 解码库 图形用户接口 图4.6 有图形操作界面的播放器各模块间的关系图

4.4.4 程序的编写和实现

(1)建立工程文件

在桌面建立名为“player”,将在该文件夹中建立名为“Mplayer.pro”

的工程文件,同时所用的其它中间文件都保存在这个文件夹里面。如图4.7、4.8所示。

图4.7 建立工程

33

南京工程学院毕业设计说明书(论文)

图4.8指定文件名称

在本程序中,作者自行定义了一个名为“mplayer”的类,其继承于QWidget

类。QWidget类是所有GUI对象的基类。可以说,Qt极大部分的UI相关的类都从QWidget类继承过来的,而QWidget则继承于QObject。QObject类是所有Qt对象的基类,是Qt对象模型的中心。这个模型的核心就是之前所介绍的信号和槽机制。

(2)创建主窗体

Qt Creator创建主窗体,需要使用QSlider类、QPushButton类、QSinBox

类以及QWidget类。QWidget 类代表一般的窗口,其他窗口类都是从QWidget 类继承出来的,而QWidget类则同时继承了QObject类和QPaintDevice类,也就是说,窗口类都是Qt对象类。界面程序设计中需要使用2次QWidget类,一次用于整个界面,一次用于显示视频的窗口。如图4.9、4.10所示。各图标有对应的png格式的图片(放在/images目录中,这些图片是委托熟悉美工朋友制作的),在编译后的界面中的按钮会有所体现。

34

南京工程学院毕业设计说明书(论文)

图4.9 主窗体的设计

图4.10 主窗体中各对象及类

4.4.5 关键代码分析

mplayer.cpp文件的代码中实现播放器“开始播放”、暂停播放”、“停

止播放”、“静音”、“音量调节”、“播放进度”这些关键功能。在头文件mplayer.h中对信号和槽函数进行声明。

(1)从QWidget类继承的Mplayer类中存在一个以“Mplayer”命名的成

员。在该Mplayer内部实现界面、进度条等的初始化。通过定义一个 QProcess 对象调用已编译好的Mplayer播放器,在下文进一步叙述。 Mplayer::Mplayer(QWidget *parent):QWidget(parent)

setupUi(this);

//初始化界面

35


基于嵌入式Linux的MP3播放器的设计与实现毕业设计论文(8).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:远洋东期长城杯汇报资料 - 图文

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: