タイミング部分にはQTimer
を使用してください。
「スクリーンセーバー」のようなものでは、ワンショットタイマーを作成し、それを自分のカスタムスロットに接続し、間隔を2分に設定します。そのカスタムスロットで
activeTimer = new QTimer(this);
activeTimer->setInterval(2*60*1000);
activeTimer->setSingleShot(true);
connect(activeTimer, SIGNAL(timeout()), this, SLOT(activateAutoClick()));
activeTimer->start();
、2番目のカスタムスロット
void YourThing::activateAutoClick() {
autoTimer->setInterval(5*1000);
autoTimer->setSingleShot(false);
connect(autoTimer, SIGNAL(timeout()), this, SLOT(autoClick()));
autoTimer->start();
}
に接続された第二の、非シングルショットタイマーを起動し、autoClick
であなたのポートに信号を送るという点でやりたいです。
いずれかのタイマーをキャンセルするには、単にstop()
メソッド/スロットを呼び出します。
機能作成し、「スクリーン・セーバー」動作を実装するには:1
ことを再起動し、その機能を呼び出すためにactiveTimerr->start(2*60*1000)
を呼び出し
クリック
- コール
autoTimer->stop()
自動を無効にするには必要に応じてボタンの既存のスロットから行うことも、QWidget
のmouseMoveEvent
,keyPressedEvent
などのイベントハンドラを再実装することもできます。 (ハンドラのマニュアルを必ず読んでください。具体的な準備が必要なものもあります)
出典
2011-08-07 12:30:42
Mat