废话
该案例将演示QPainter的变形缩放特性,利用此特性可以更简单的绘制自定义窗口部件。
定义模拟时钟类
模拟时钟包含时针和分针,它在每分钟会自动更新。我们通过子类化QWidget,并重新实现标准paintEvent()函数来绘制时钟面。
from PyQt5.QtWidgets import *
from PyQt5.QtGui import *
import sys
class AnalogClock(QWidget):
def __init__(self):
super(AnalogClock, self).__init__()
实现模拟时钟类
from PyQt5.QtWidgets import *
from PyQt5.QtGui import *
import sys
class AnalogClock(QWidget):
def __init__(self):
super(AnalogClock, self).__init__()
self.setWindowTitle('AnalogClock')
self.resize(200, 200)
self.timer = QTimer(self)
self.timer.timeout.connect(self.update)
self.timer.start(1000)
app = QApplication(sys.argv)
clock = AnalogClock()
clock.show()
app.exec_()
当构造部件时,设置个1秒钟计时器来跟踪当前时间,并将它连接到标准update()槽。于是当计时器发射timeout()信号时,时钟面被更新。
最后我们重定义窗口部件大小,使它显示一个合理尺寸。