#ifndef MOVIEPLAY_H
#define MOVIEPLAY_H
#include <QPushButton>
#include <QWidget>
#include <QSlider>
#include <QListWidget>
#include <QListWidgetItem>
#include <QStringList>
#include <QString>
#include <QDir>
#include <QProcess>
#include <QTimer>
#include <QCloseEvent>
#include <QLabel>
class MoviePlay:public QWidget
{
Q_OBJECT
public:
QPushButton *play;
QPushButton *stop;
QPushButton *forward;
QPushButton *rewind;
QPushButton *come_back;
QLabel *v_label;
QLabel *list_label;
QProcess *mplayer;
QStringList args;
QSlider *volumeBar;
QTimer *timer;
QSlider *timeBar;
QListWidget *listWidget;
QDir *dir;
QStringList *fileList;
QString *file;
/******************************************************************/
QLabel *length;
QLabel *curr;
QPushButton *ok;
/******************************************************************/
int number;
int status;
int currentTime;
int timeLength;
int volume;
MoviePlay(QWidget *parent=0);
~MoviePlay();
const QString deleteSuffix(const QString &str);
signals:
void end();
public slots:
void _play();
void _stop();
void _rewind();
void _forward();
void selectFile(QListWidgetItem * item);
void playFinished(int,QProcess::ExitStatus);
void parseOutput();
void getCurrentTime();
void setVolume(int);
/******************************************************************/
void _ok();
/******************************************************************/
void end_slot();
protected:
void closeEvent(QCloseEvent *e);
};
#endif
以上是头文件里面都文件里面类的定义
下面是具体实现
#include "musicplay.h"
#include <QString>
#include <iostream>
const QString DIR = "/home/music";
//const QString DIR = "/root/all_show/music";
const QString ICON = "/home/app.png";
//const QString ICON = "/root/all_show/music/app.png";
const QString PATH = "/home/mplayer";
//const QString PATH = "/usr/local/mplayer/bin/mplayer";
const int MAX_VOLUME = 25;
const int WIDTH = 320;
const int HEIGHT = 240;
const int BUTTON_WIDTH = 40;
const int BUTTON_HEIGHT = 40;
MusicPlay::MusicPlay(QWidget *parent)
:QWidget(parent)
{
status = 0;
row = 2;
mode = 1;
volume = 25;
nextEnable = false;
this->resize(WIDTH,HEIGHT);
path = new QString(PATH);
args<<"-slave"<<"-quiet"<<"-ac"<<"mad";
mplayer = new QProcess(this);
connect(mplayer,SIGNAL(readyReadStandardOutput()),this,SLOT(parseOutput()));
timer = new QTimer(this);
connect(timer,SIGNAL(timeout()),this,SLOT(getCurrentTime()));
modeComboBox =