原理
做延遲功能可以充分利用 QTimer 的 timeout 超時特性來做,當QTimer超時時會觸發超時的信號,我們可以利用這個信號來連接槽函數來做業務操作。
首先在頭文件(.h文件)聲明 QTimer
public:
QTimer *my_timer;
再聲明一個槽函數
public slots:
void handleTimeout();
然後再.cpp文件中的構造器裏面初始化 QTimer 和 連接 槽函數
// 初始化 QTimer
my_timer = new QTimer(this);
// 連接槽函數
connect(my_timer, SIGNAL(timeout()), this, SLOT(handleTimeout()));
接下來在需要做延遲的地方啓動 QTimer
my_timer.start(500); // 單位爲毫秒。此處是500毫秒。
等到 QTimer啓動指定毫秒後就會觸發 timeout 信號, 接着就會調用上面 connect 的槽函數。
接下來要做的就是實現的 handleTimeout() 函數的功能邏輯,等待調用即可。
如要關閉 QTimer,調用 stop方法即可。
my_timer.stop();
技 術 無 他, 唯 有 熟 爾。
知 其 然, 也 知 其 所 以 然。
踏 實 一 些, 不 要 着 急, 你 想 要 的 歲 月 都 會 給 你。