基于QT的GUI设计 第6页
在QT中调用mplayer的方法为:
const QString mplayerPath("mplayer ");
QStringList args; args<<"XXX.avi";
QProcess* myProcess=new QProcess;
myProcess->start(mplayerPath,args);
其中mplayerPath("mplayer ")为mplayer的路径,args为进程调用时的句柄,即是mplayer的参数。例如: -slave、-quiet等模式
对于在音视频播放时要暂停、停止、全屏等操作时可以调用以下语句:
mplayerProcess->write("AAA");
其中AAA为mplayer默认的快捷键参数,例如:p为暂停,q为停止,f为全屏等。
在本系统中利用以下方法实现开始,停止、暂停:bool startMPlayer();bool stopMPlayer();bool pauseMPlayer()。bool isplaying;作为音视频是否播放的标识;
使用Qprocess的函数readLine();获取线程信息,将相关数据放入一个数组中:QByteArray buffer(mplayerProcess->readLine());之后获取文件的播放信息,包括播放的窗口大小,时间条长度,当前播放的时间位置。
使用open();打开一个系统文件浏览列表,
movieFile = QFileDialog::getOpenFileName(this);此处调用QT内部API函数打开文件。
以下为给mplayer进程添加检测进程是否推出状态的信号与槽:
connect(mplayerProcess,SIGNAL(finished(int,QProcess::ExitStatus)),this, SLOT(mplayerEnded(int, QProcess::ExitStatus)));
4.2.3 播放器模块GUI界面设计
在此模块界面中设计了一个不规则窗体,添加按钮:播放,暂停,停止,全屏。
主要函数说明如下:
Qpixmap pix;
pix.load(":/images/musicbg.png",0,Qt::AvoidDither|Qt::ThresholdDither|Qt::ThresholdAlphaDither);
resize(pix.size());setMask(pix.mask());
其中pix为不规则窗体的背景图片,此部分为加载一个png图片。
以下为将加载的图片绘画在窗口中:
QPainter painter(this);
painter.drawPixmap(0,0,QPixmap(":/images/musicbg.png"));
此外,在背景图片上添加相应的事件触发按钮,以下以打开按钮为例:
Qimage openimage.load(":/images/open.png");给openimage加载图片;
Labelopen = new QLabel( this );建立新的Label;
QLabel* Labelopen->setPixmap(QPixmap::fromImage(openimage));把openimage设置在Label中;
Labelopen->setGeometry(QRect(55,115,32,32));设置Label的坐标位置;
Labelopen->installEventFilter(this);给Label安装事件过滤器。
以下为鼠标点击及释放时的事件过滤事件:
if(watched == Labelopen)
{
if(event->type() == QEvent::MouseButtonPress) //检测鼠标点击事件;
{QMouseEvent *mouseEvent = (QMouseEvent *)event;
if(mouseEvent->buttons() &Qt::LeftButton)//鼠标单击左键;
{QMatrix martix;
martix.scale(0.8,0.8);
QImage tmp=openimage.transformed(martix);//鼠标按下时的按钮动态效果;
Labelopen->setPixmap (QPixmap::fromImage(tmp));
}
}
if(event->type() == QEvent::MouseButtonRelease)
{Labelopen->setPixmap (QPixmap::fromImage(openimage));//鼠标释放后显示的按钮图片;
open(); //调用打开文件的方法
}
}
return QDialog::eventFilter(watched,event);
此外利用同样方法创建play,pause,fullscreen,stop等按钮事件过滤。
4.3网页浏览器模块设计
4.3.1 Webkit引擎
WebKit 是一个开源浏览器网页排版引擎,与之相应的引擎有Gecko(Mozilla,Firefox 等使用的排版引擎)和Trident(也称为MSHTML,IE 使用的排版引擎)。同时WebKit 也是苹果Mac OS X 系统引擎框架版本的名称,主要用于Safari,Dashboard,Mail 和其他一些Mac OS X 程序。WebKit 所包含的 WebCore 排版引擎和 JSCore 引擎来自于 KDE 的 KHTML 和 KJS,当年苹果比较了 Gecko 和 KHTML 后,仍然选择了后者,就因为它拥有清晰的源码结构、极快的渲染速度。
Webkit是苹果公司自己的内核,也是苹果的Safari浏览器使用的内核。 Webkit引擎包含WebCore排版引擎及JavascrīptCore解析引擎,均是从KDE的KHTML及KJS引擎衍生而来,它们都是自由软件,在GPL条约下授权,同时支持BSD系统的开发。所以Webkit也是自由软件,同时开放源代码。
QT内部包含有调用Webkit引擎的API,以实现网页浏览。
4.3.2 QT调用Webkit类和实现方法
以下为本模块类中相关函数:
图4-5 浏览器中相关函数图
本系统中调用webkit时主要的
上一页 [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] ... 下一页 >>
基于QT的GUI设计 第6页下载如图片无法显示或论文不完整,请联系qq752018766