我使用的是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的全部功能。