赞
踩
- import sys
- import pygame
- from PyQt5.QtCore import QTimer
- from PyQt5.QtGui import QIcon
- from PyQt5.QtWidgets import QApplication, QWidget, QLabel, QLineEdit, QPushButton, QVBoxLayout, QDoubleSpinBox, QSpinBox
-
-
- class XiaoYa(QWidget):
- def __init__(self):
- super().__init__()
- pygame.mixer.init()
- pygame.mixer.music.load("static/audio_file.mp3")
- self.btn = None
- self.isStart = None
- self.mytimer = None
- self.minute = None
- self.seconds = None
- self.defStyleSheet = "font-size:30px;color:red"
- self.intUi()
-
- def intUi(self):
- self.setWindowTitle("小雅的倒计时") # 4. 设置窗口标题
- self.resize(400, 180) # 设置窗口大小
- self.setWindowIcon(QIcon("static/icon.png"))
- # 文本框
- self.minute = QSpinBox(self)
- self.minute.setGeometry(115, 20, 50, 40)
- # 设置范围和步长
- self.minute.setRange(0, 30)
- self.minute.setSingleStep(1)
- # 设置当前值
- self.minute.setValue(3)
- self.minute.setStyleSheet(self.defStyleSheet)
-
- label = QLabel("分", self)
- # 设置位置x,y,w,h
- label.setGeometry(170, 20, 40, 40)
- label.setStyleSheet(self.defStyleSheet)
-
- # 文本框
- self.seconds = QSpinBox(self)
- self.seconds.setGeometry(210, 20, 50, 40)
- # 设置范围和步长
- self.seconds.setRange(0, 59)
- self.seconds.setSingleStep(1)
- # 设置当前值
- self.seconds.setValue(0)
- self.seconds.setStyleSheet(self.defStyleSheet)
-
- label = QLabel("秒", self)
- # 设置位置x,y,w,h
- label.setGeometry(270, 20, 40, 40)
- label.setStyleSheet(self.defStyleSheet)
-
- # 在窗口里面添加控件
- self.btn = QPushButton("开始", self)
- self.btn.setGeometry(140, 80, 100, 60)
- self.btn.setStyleSheet(self.defStyleSheet)
- self.btn.released.connect(self.btnClick)
-
- self.mytimer = QTimer(self)
- self.mytimer.timeout.connect(self.onTimer)
- self.mytimer.stop()
- self.isStart = False
-
- # 开始 OR 停止
- def btnClick(self):
- if self.isStart:
- self.mytimer.stop()
- self.btn.setText("开始")
- self.isStart = False
- else:
- pygame.mixer.music.stop()
- self.mytimer.start(1000)
- self.btn.setText("停止")
- self.isStart = True
- self.minute.setEnabled(not self.isStart)
- self.seconds.setEnabled(not self.isStart)
-
- # 倒计时回调
- def onTimer(self):
- secondsValue = self.seconds.value()
- minuteValue = self.minute.value()
- if self.seconds.value() == 1 and minuteValue == 0:
- self.seconds.setValue(secondsValue - 1)
- print("时间到了")
- self.btnClick()
- self.pygame_load()
- return
- if self.seconds.value() == 0:
- if minuteValue == 0:
- print("时间到了")
- self.btnClick()
- self.pygame_load()
- else:
- self.minute.setValue(minuteValue - 1)
- self.seconds.setValue(59)
- else:
- self.seconds.setValue(secondsValue - 1)
-
- def pygame_load(self):
- pygame.mixer.music.play()
-
-
- if __name__ == '__main__':
- # 2.创建一个 QApplication 对象,指向QApplication ,接受命令行参数
- app = QApplication(sys.argv)
- # 3. 创建一个 QWidget对象
- w = XiaoYa()
- # 5. 展示窗口
- w.show()
- # 程序进行循环等待状态
- app.exec()

pyinstaller -F -p . main.py
赞
踩
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。