问:如何跟踪Phonon :: SeekSlider的发布或更改事件?

时间:2011-05-26 23:57:00

标签: qt phonon

我正在使用Phonon :: SeekSlider,这是一件很酷的事情,我不需要为滑块和MediaObject之间的同步而烦恼,但现在我需要跟踪用户在移动滑块或它的值后释放滑块的时刻更改或更改MediaObject的当前时间。我找不到任何公共信号,我可以在滑块的代码中看到它们,但它们是私有的。我怎样才能继承/实现/跟踪跟踪此事件的内容?

由于

3 个答案:

答案 0 :(得分:0)

您可以创建一个继承SeekSlider的类 在.h文件中:

#include <Phonon/SeekSlider>

using namespace Phonon;

class MySeekSlider : public SeekSlider
{
    Q_OBJECT
public:
    MySeekSlider(QWidget *parent = 0);

signals:
    void release(qint64 pos);
protected:
    virtual void mouseReleaseEvent(QMouseEvent *);
};

和the.cpp

void MySeekSlider::mouseReleaseEvent(QMouseEvent *)
{
    emit release(this->pos());
}

或使用MediaObject的滴答信号

void    tick ( qint64 time )

答案 1 :(得分:0)

您可以以与任何其他信号相同的方式连接到私人信号。 QStaticMetaObject忽略信号的可见性级别。私有信号与普通信号的唯一区别(具有受保护的可见性级别) - 在子类化Phonon :: SeekSlider时无法发出它们。

答案 2 :(得分:0)

我想除了创建一个从QSlider继承的新类之外没有办法做到这一点,并在里面添加关于MediaObject的全部功能。