2

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

谢谢

4

3 回答 3

0

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

于 2011-05-28T07:50:01.513 回答
0


您可以在 .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 )
于 2011-05-27T09:37:46.090 回答
0

您可以像连接任何其他信号一样连接到私人信号。QStaticMetaObject 忽略信号|槽的可见性级别。私有信号与正常(具有受保护的可见性级别)的唯一区别 - 在子类化 Phonon::SeekSlider 时不能发出它们。

于 2011-05-27T09:38:06.543 回答