笔者最近有一个需求,就是在按钮上显示一个转圈的gif来表示正在发送的状态。但是就这么一个小按钮,我是不想单独写一个类来重写paintEvent重绘的。所以有了以下方式:
即:在按钮上放一个label,通过label去显示一个movie。只需要在按下按钮的槽里面让movie start即可实现,但又不会遮住按钮,使按钮按不到。
QVBoxLayout* layout = new QVBoxLayout(SubmitButton);
m_label = new QLabel();
m_label->setAlignment(Qt::AlignLeft | Qt::AlignVCenter);
QString strPath = SkinManager::instance()->GetDirPath();
m_movie = new QMovie(strPath + "image/addWait.gif");
m_movie->setScaledSize(QSize(14, 14));
m_label->setMovie(m_movie);
layout->addWidget(m_label);