QPushButton
アイコンを設定できますが、アニメーションアイコンを設定する必要があります。 設定方法は? から実装された新しいクラスを作成しましたが、アイコンをからQPushButton
に置き換えるにはどうすればよいでしょうか?QIcon
QMovie
ベストアンサー1
QPushButton
これは、サブクラス化せずに、Qt のシグナル/スロット メカニズムを使用するだけで実現できます。frameChanged
のシグナルをQMovie
、この を含むクラスのカスタム スロットに接続します。この関数は、 の現在のフレームをのアイコンとしてQPushButton
適用します。次のようになります。QMovie
QPushButton
// member function that catches the frameChanged signal of the QMovie
void MyWidget::setButtonIcon(int frame)
{
myPushButton->setIcon(QIcon(myMovie->currentPixmap()));
}
QMovie
そして、あなたとメンバーを割り当てるときQPushButton
...
myPushButton = new QPushButton();
myMovie = new QMovie("someAnimation.gif");
connect(myMovie,SIGNAL(frameChanged(int)),this,SLOT(setButtonIcon(int)));
// if movie doesn't loop forever, force it to.
if (myMovie->loopCount() != -1)
connect(myMovie,SIGNAL(finished()),myMovie,SLOT(start()));
myMovie->start();