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 の tick 信号を使用します

void    tick ( qint64 time )
于 2011-05-27T09:37:46.090 に答える
0

他の信号と同じ方法でプライベート信号に接続できます。QStaticMetaObject は、シグナル|スロットの可視性レベルを無視します。通常のプライベート シグナル (可視性レベルが保護されている) との唯一の違いは、Phonon::SeekSlider をサブクラス化するときにそれらを発行できないことです。

于 2011-05-27T09:38:06.543 に答える