from PyQt5.QtCore import QTimer
import time
from PyQt5.QtWidgets import QApplication
import sys
classUpdate:def__init__(self):
self.t1 = QTimer()
self.t1.timeout.connect(self.outprint)
self.t1.start(250)defoutprint(self):
status =True
i =1while status:print(i)
i +=1
time.sleep(1)if i >=5:
status =Falseif __name__ =='__main__':#不用UI也可以执行,没有下面这几行容易报错try:
app = QApplication(sys.argv)
refreshvalue = Update()
sys.exit(app.exec_())except KeyboardInterrupt:print('\nInterrupted... finishing')
QtCore.QTimer()
core code
t1 = QtCore.QTimer()#Created a QTimer
t1.timeout.connect(outprint)# run def outprint after interval time(1000ms)
t1.start(1000)# run after every 1000ms
t1.stop()# stop the timer
example
from PyQt5.QtCore import QTimer
import matplotlib
matplotlib.use("Qt5Agg")# 声明使用QT5# from matplotlib.backends.qt_compat import QtCorefrom matplotlib.backends.backend_qt5agg import FigureCanvas
from matplotlib.figure import Figure
i =1
j =1defoutprint(a =5):global i,j
if j < a:if i < a:print("j=",j,"i=",i)
i +=1else:
t1.stop()print("stop")
j +=1
i =1print("start")
t1.start()else:
t1.stop()print("stop")# print(i)
t1 = QtCore.QTimer()
t1.timeout.connect(outprint)
t1.start(1000)# t1.stop()
import matplotlib.pyplot as plt
import numpy as np
from datetime import datetime
i =1
j =1defupdate_title(axes,a=5):
axes.set_title(datetime.now())
axes.figure.canvas.draw()global i,j
if j < a:if i < a:print("j=",j,"i=",i)
i +=1else:
timer.stop()print("stop")
j +=1
i =1print("start")
timer.start()else:
timer.stop()print("stop")
fig, ax = plt.subplots()
x = np.linspace(-3,3)
ax.plot(x, x **2)# Create a new timer object. Set the interval to 100 milliseconds# (1000 is default) and tell the timer what function should be called.
timer = fig.canvas.new_timer(interval=100)
timer.add_callback(update_title, ax)#update_title is func,and ax is come from update_title(ax),property
timer.start()# Or could start the timer on first figure draw#def start_timer(evt):# timer.start()# fig.canvas.mpl_disconnect(drawid)#drawid = fig.canvas.mpl_connect('draw_event', start_timer)
plt.show()
FigureCanvas(Figure()).new_timer
core code
from matplotlib.backends.backend_qt5agg import FigureCanvas
from matplotlib.figure import Figure
fg = FigureCanvas(Figure())
t1 = fg.new_timer(interval=100)
t1.add_callback(outprint,a)
t1.start()
t1.stop()
example
import matplotlib
matplotlib.use("Qt5Agg")# 声明使用QT5# from matplotlib.backends.qt_compat import QtCorefrom PyQt5.QtCore import QTimer
from PyQt5 import QtCore
from matplotlib.backends.backend_qt5agg import FigureCanvas
from matplotlib.figure import Figure
i =1
j =1defoutprint(a =5):global i,j
if j < a:if i < a:print("j=",j,"i=",i)
i +=1else:
t1.stop()print("stop")
j +=1
i =1print("start")
t1.start()else:
t1.stop()print("stop")
a=7
fg = FigureCanvas(Figure())
t1 = fg.new_timer(interval=100)
t1.add_callback(outprint,a)
t1.start()