-
startTimer(ms, Qt.TimerType) -> time_id 開啟一個定時器
-
Qt.TimerType 定時精度
-
Qt.PreciseTimer,盡可能保持毫秒級準確
-
Qt.CoarseTimer,5%的誤差間隔
-
Qt.VeryCoarseTimer:秒級,精度較低
-
timer_id:定時器的唯一標識
killTimer(time_id):根據(jù)定時器 ID,關(guān)閉定時器
timerEvent():定時器執(zhí)行事件
from PyQt5.Qt import *
import sys
class MyObject(QObject):
def timerEvent(self, evt):
print(evt, "1")
app = QApplication(sys.argv)
window = QWidget()
window.setWindowTitle("QObject 定時器的使用")
window.resize(500, 500)
obj = MyObject()
timer_id = obj.startTimer(1000)
# 指明定時器ID
obj.killTimer(timer_id)
window.show()
sys.exit(app.exec())
案例一:創(chuàng)建一個 QLabel,展示 10 秒倒計時
# 0. 導入需要的包和模塊
from PyQt5.Qt import *
import sys
class MyObject(QObject):
def timerEvent(self, evt):
print(evt, "1")
class MyLabel(QLabel):
def __init__(self, *args, **kwargs):
super().__init__(*args, **kwargs)
self.setText("10")
self.move(100, 100)
self.setStyleSheet("font-size: 22px;")
def setSec(self, sec):
self.setText(str(sec))
def startMyTimer(self, ms):
self.timer_id = self.startTimer(ms)
def timerEvent(self, *args, **kwargs):
# 1. 獲取當前的標簽的內(nèi)容
current_sec = int(self.text())
current_sec -= 1
self.setText(str(current_sec))
print(current_sec)
if current_sec == 0:
print("停止")
self.killTimer(self.timer_id)
# 1. 創(chuàng)建一個應用程序?qū)ο?app = QApplication(sys.argv)
# 2. 控件的操作
# 2.1 創(chuàng)建控件
window = QWidget()
# 2.2 設置控件
window.setWindowTitle("QObject定時器的使用")
window.resize(500, 500)
label = MyLabel(window)
# label.setSec(5)
# 設置初始秒值
label.startMyTimer(1000)
# 2.3 展示控件
window.show()
# 3. 應用程序的執(zhí)行, 進入到消息循環(huán)
sys.exit(app.exec_())
最后編輯于 :
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。