如果要在應用程式中周期性地進行某項操作,比如周期性地檢測主機的cpu值,則需要用到qtimer定時器,qtimer類提供了重複的和單次的定時器。要使用定時器,需要先建立乙個qtimer例項,將其timeout訊號連線到相應的槽,並呼叫start()
。然後定時器會以恆定的間隔發出timeout訊號,當視窗控制項收到timeout訊號後,它就會停止這個定時器。
方法
描述start(milliseconds)
啟動或重新啟動定時器,時間間隔為毫秒。如果定時器已經執行,它將被停止並重新啟動。如果singleshot訊號為真,定時器將僅被啟用一次
stop()
停止定時器
訊號描述
singleshot
在給定的時間間隔後呼叫乙個槽函式時發射此訊號
timeout
當定時器超時時發射此訊號
示例1:
import sys
from pyqt5 import qtcore
from pyqt5.qtwidgets import
*from pyqt5.qtgui import
*from pyqt5.qtcore import
*class
demo
(qwidget)
: count =
0def
__init__
(self)
:super()
.__init__(
) self.setgeometry(
100,50,
500,
400)
self.setwindowtitle(
'qtimer'
) self.
list
= qlistwidget(
) self.label = qlabel(
'顯示當前時間'
) self.start = qpushbutton(
'開始'
) self.end = qpushbutton(
'結束'
) layout = qgridlayout(
)#初始化定時器
self.timer = qtimer(self)
self.timer.timeout.connect(self.showtime)
self.start.clicked.connect(self.starttimer)
self.end.clicked.connect(self.endtimer)
layout.addwidget(self.label,0,
0,1,
2)layout.addwidget(self.start,1,
0)layout.addwidget(self.end,1,
1)self.setlayout(layout)
defshowtime
(self)
:#獲取系統現在的時間
time = qdatetime.currentdatetime(
).tostring(
'yyyy-mm-dd hh:mm:ss dddd'
) self.label.settext(time)
defstarttimer
(self)
:#設定時間間隔並啟動定時器
self.timer.start(
1000
) self.start.setenabled(
false
) self.end.setenabled(
true
)def
endtimer
(self)
:#關閉定時器
self.timer.stop(
) self.start.setenabled(
true
) self.end.setenabled(
false
)if __name__ ==
"__main__"
: form = demo(
) form.show())
)
執行效果如下:
示例2:
import sys
from pyqt5 import qtcore
from pyqt5.qtwidgets import
*from pyqt5.qtgui import
*from pyqt5.qtcore import
*if __name__ ==
"__main__"
: label = qlabel(
'pyqt5,視窗5秒後消失'
)#無邊框視窗
label.setwindowflags(qt.splashscreen|qt.framelesswindowhint)
label.show(
)#設定5秒後自動退出
qtimer.singleshot(
5000
))
執行效果如下: pyQt5 學習筆記(4)定時器
定時器是程式設計中核心功能模組之一,qt為我們提供了定時器的api,我們可以通過指定乙個控制項,每隔一段時間,執行什麼操作。pyqt5定時器有三個型別 qt.timertype pyqt5主要有以下兩個個功能 對於計時器而言,精準定時有利於我們程式的控制,但是也增加的系統的負擔,所以選擇何種型別定時...
定時器 QTimer類
定時器 qtimer類 qtimer timer new qtimer connect timer,signal timeout this,slot x timer setinterval 1000 設定間隔時間 事件單位毫秒 timer setsingleshot true timer start...
QTimer定時器類
參考 1 首先建立乙個定時器類的物件 qtimer timer new qtimer this 2 timer 超時後會發出timeout 訊號,所以在建立好定時器物件後給其建立訊號與槽 connect timer,signal timeout this,slot timeoutslot 3 在需要...