QTはQQのようなジッタ効果を実現する


ジッタ効果の実現は、タイマーを設定し、タイミングをループさせ、mainWindowの位置を絶えず変換することで実現されます.くだらないことを言わないで直接コードをつけなさい.mainwindow.hファイル:
void shakeWindow();//   
void setShakeNumber();// m_nTimes  
int m_nTimes=0;
QPoint m_curPos;
QTimer* m_timer;

mainwindow.cppファイル:
Window::Window(QWidget *parent)
,m_timer(new QTimer(this))
,m_nTimes(0)
,m_curPos(QPoint())
{
}
void Window::setShakeNumber()
{
    m_nTimes = 0;
}

void Window::shakeWindow()
{
    m_curPos = this->pos();

    m_timer->stop();
    if (m_nTimes <= MaxLimitTimes)
    {
        ++m_nTimes;
        switch (m_nTimes % 4)
        {
            case 1:
            {
              QPoint tmpPos(m_curPos.x() + MaxLimitSpace, m_curPos.y() - MaxLimitSpace);
              this->move(tmpPos);
            }
            break;
            case 2:
            {
              QPoint tmpPos(m_curPos.x() - MaxLimitSpace, m_curPos.y() - MaxLimitSpace);
              this->move(tmpPos);
            }
            break;
            case 3:
            {
              QPoint tmpPos(m_curPos.x() - MaxLimitSpace, m_curPos.y() + MaxLimitSpace);
              this->move(tmpPos);
            }
        break;
            case 0:
            {
              QPoint tmpPos(m_curPos.x() + MaxLimitSpace, m_curPos.y() + MaxLimitSpace);
              this->move(tmpPos);
            }
            break;
            default:
            this->move(m_curPos);
            break;
        }
        m_timer->start();
    }

} /////////////////////////////////////////////////////////////////////////////////////////// main.cpp:
int main(int argc,char*argv[]){QTimer_pShakeWindowTimer= new QTimer(this);QQQQQushButton_shakeBtn=new QQQQQQushButton(this);connect(&_pShakeWindowTimer,SIGNAL(timeout()),this,SLOT(onShakeWindowTimeOut()))));connect(_shakeBtn,SIGNAL(clicked(),this,SLOT,SLOT());(onClickShakeBtn();_pShakeWindowTimer.setInterval(40);//タイマーを40ミリ秒に設定}
void onClickShakeBtn() { _pShakeWindowTimer.start(); App::wnd()->setShakeNumber(); } /////////////////////////////////////////////// 全文が終わった(コードが少し乱れているので、みんなが集まって見て、忙しくてこの間コードを丸ごと)