如何使推送QPushButton的延迟?

时间:2014-06-09 15:29:03

标签: qt user-interface latency qpushbutton

我想创建QPushButton,它有机会在200毫秒内不经常按下一次。当我使用func sleep(200)时,所有GUI线程都将停止。 等待你的想法! Thankx!

1 个答案:

答案 0 :(得分:1)

这样的事情:

class Controller : public QObject
{
    // ...
private:
    QPointer< QPushButton > btn;
private slots:
    void onClicked();
    void enableClick();
};

Controller::onClicked()
{
    disconnect( btn, SIGNAL( clicked() ), SLOT( onClicked() ) );
    QTimer::singleShot( 200, this, SLOT( enableClick() ) );
    // Optional
    btn->setEnabled( false );
}

Controller::enableClick()
{
    connect( btn, SIGNAL( clicked() ), SLOT( onClicked() ) );
    // Optional
    btn->setEnabled( true );
}