📢 Webサイト閉鎖と移転のお知らせ
このWebサイトは2026年9月に閉鎖いたします。
新しい記事は移転先で追加しております。(旧サイトでは記事を追加しておりません)

24行目: 24行目:
<br><br>
<br><br>


== タイマイベントの使用例 ==
== 単発のタイマ ==
以下の例では、単発タイマを使用して、指定時間後に1度だけメッセージを表示している。<br>
<syntaxhighlight lang="c++">
// TimerExample.hファイル
#include <QCoreApplication>
#include <QTimer>
#include <stdexcept>
#include <QDebug>
class TimerExample : public QObject
{
    Q_OBJECT
public:
    TimerExample(QObject *parent = nullptr) : QObject(parent) {}
    void startTimer(int milliseconds)
    {
      // startTimer(0)のように呼び出す場合は例外エラーとする
      try {
          if (milliseconds <= 0) {
            throw std::invalid_argument("Timer duration must be positive");
          }
          QTimer::singleShot(milliseconds, this, &TimerExample::onTimeout);
          qDebug() << "Timer started for" << milliseconds << "milliseconds";
      }
      catch (const std::exception& e) {
          qCritical() << "エラー: " << e.what();
      }
    }
private slots:
    void onTimeout()
    {
        qDebug() << "Timer expired!";
        emit finished();
    }
signals:
    void finished();
};
</syntaxhighlight>
<br>
<syntaxhighlight lang="c++">
// main.cppファイル
#include "TimerExample.h"
int main(int argc, char *argv[])
{
    QCoreApplication a(argc, argv);
    TimerExample example;
    QObject::connect(&example, &TimerExample::finished, &a, &QCoreApplication::quit);
    example.startTimer(5000);  // 5秒後にタイマイベント開始
    return a.exec();
}
</syntaxhighlight>
<br><br>
 
== 繰り返しタイマ ==
以下の例では、ダイアログを開いて画像を表示している。<br>
以下の例では、ダイアログを開いて画像を表示している。<br>
1秒ごとに画像の大きさを変化させる。<br>
1秒ごとに画像の大きさを変化させる。<br>