Qt自带有滑动条QSlider,但是和程序的整体设计风格差别太大。所以我自己写一个视频播放器的进度条,用色块表示播放进度,同时可以显示播放标题,而且支持点击或者拖动进度。
头文件 slider.h
#ifndef SLIDER_H
#define SLIDER_H
#include <QLabel>
#include <QObject>
#include <QColor>
#include <QTimer>
#include <QMouseEvent>
class Slider : public QLabel
{
Q_OBJECT
public:
Slider(QWidget* parent = 0);
void set_background_color(QColor c);
void set_slid_color(QColor c);
void set_text_color(QColor c);
void set_percent(double p);
void set_text(QString t);
private:
bool m_bLeft_button_pressed;
double m_dPercent;
QColor m_background_color;
QColor m_slidered_color;
QColor m_text_color;
QTimer m_timer;
QString m_text;
protected:
void paintEvent(QPaintEvent* e);
void mousePressEvent(QMouseEvent* e);
void mouseMoveEvent(QMouseEvent* e);
void mouseReleaseEvent(QMouseEvent* e)