2012-02-26 1 views
0

私は、をとすると、を扱うことができますが、SIGNALの引数をどのように扱うことができますか。QTで動的に追加されたQObjectのSIGNAL(引数付き)を扱うには?

実際に問題があるのは、QProgressBarを動的に作成したため、QNetworkReplydownloadProgress(qint64, qint64)を使用してバーを更新すると問題が発生しました。

+0

なぜあなたは 'QSignalMapper'を使いたいん:

あなたはあなた自身のアダプタクラスを作成する必要がありますか? – Lol4t0

+0

@ Lol4t0ノノーノ。私はちょうどGoogleによってそれを見つけた、私はそれを使用する必要はありません、それは私の問題を解決できないようです – Topro

答えて

1

QNetworkReply's downloadProgress(qint64, qint64)QProgressBarのスロットはどのような方法でも互換性がありません。この場合、シグナルマッパーはあなたを助けません。それはあまりにも具体的です。

class Adapter: public QObject 
{ 
    Q_OBJECT 
public: 
    explicit Adapter(QProgressBar* bar, const QNetworkReply* reply):QObject(bar) 
    { 
     connect(reply, SIGNAL(downloadProgress(qint64,qint64)), SLOT(changeProgress(qint64,qint64))); 
    } 

private slots: 
    void changeProgress(qint64 progress, qint64 total) 
    { 
     QProgressBar* bar = static_cast<QProgressBar*>(parent()); 
     bar->setMaximum(total); 
     bar->setValue(progress); 
    } 

}; 
関連する問題