效果图展示:
代码如下:
import sys
from PyQt6.QtGui import QPainter, QColor, QMouseEvent, QPixmap,QPen
from PyQt6.QtWidgets import QWidget, QApplication, QLabel, QLineEdit, QPushButton
from PyQt6 import uic
from PyQt6.QtCore import QPoint, QTimerEvent, QTime
from PyQt6.QtTextToSpeech import QTextToSpeech
class MyWidget(QWidget):
def __init__(self):
super().__init__()
ui=uic.loadUi("./Form.ui",self)
self.labeltime:QLabel=ui.labeltime
self.lineEdit:QLineEdit=ui.lineEdit
self.btn:QPushButton=ui.btn
self.labeltext:QLabel=ui.labeltext
self.labelstart:QLabel=ui.labelstart
self.startTimer(1000)
self.speecher=QTextToSpeech()
self.btn.clicked.connect(self.btn_slot)
def timerEvent(self, a0:QTimerEvent):
sys_time=QTime.currentTime()
t=sys_time.toString('hh:mm:ss')
self.labeltime.setText(t)
if self.labelstart.text()=='闹钟已经订好了':
if self.labeltime.text()==self.lineEdit.text():
self.speecher.say(self.labeltext.text())
def btn_slot(self):
self.labelstart.setText('闹钟已经订好了')
if __name__ == '__main__':
app=QApplication(sys.argv)
myWidget=MyWidget()
myWidget.show()
sys.exit(app.exec())
实现该功能用到了事件机制和信号与槽的机制。