问题:如何跟踪Phonon::SeekSlider的Release或Change事件



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

感谢

您可以创建一个继承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 *);
};

和.cpp

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

或者使用MediaObject 的勾号信号

void    tick ( qint64 time )

您可以像连接其他信号一样连接到专用信号。QStaticMetaObject忽略信号|插槽的可见性级别。私有信号与普通信号(具有受保护的可见性级别)的唯一区别是,在对Phonon::SeekSlider进行子类化时,不能发射它们。

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

相关内容

  • 没有找到相关文章

最新更新