我正在使用 Phonon::SeekSlider,这是一件很酷的事情,我不需要担心滑块和 MediaObject 之间的同步,但现在我需要跟踪用户在移动滑块后释放滑块的时刻,或者当它的值发生更改或当 MediaObject 的当前时间改变时。我找不到任何公共信号,我可以在滑块的代码中看到它们,但它们是私有的。我怎么能继承/实现/跟踪任何东西来跟踪这个事件?
谢谢
我想没有办法,只能创建一个继承自 QSlider 的新类,并在里面添加有关 MediaObject 的全部功能。
您可以在 .h 文件中创建一个继承 SeekSlider 的类:
#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 时不能发出它们。