背景
最近看上班看电脑感觉越来越费劲,眼睛越来越不舒服,偶尔还会有几滴眼泪出来,这时我终于意识到了一定是用眼过度,平均每天不低于八小时盯着屏幕,眼睛没有得到适当的休息,所以才会导致眼睛越来越酸痛。于是,我花了半天的时间,用 PyQt5 从零开始做了这个护眼小助手。
主要功能
1、强制自己适当休息,保护眼睛
2、强制自己适当休息,保护眼睛
3、强制自己适当休息,保护眼睛
重要的事情说三遍!!!!!!
运行截图
1、主界面
主界面.png
2、运行中界面
运行中界面.png
3、休息时界面(占据90%屏幕,始终至于顶层,强制你不能使用电脑,当然你要强制回到桌面那.......)
休息时界面.png
代码送上(低质量代码,不喜轻喷0.0)
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
'''
@Time : 2019/2/28 14:02
@Author : Negen
@Site :
@File : RestAssistantApp.py
@Software: PyCharm
'''
import sys
from PyQt5.QtCore import *
from PyQt5.QtWidgets import QMainWindow, QPushButton, QApplication, QLabel, QLineEdit, QMessageBox
from PyQt5 import QtCore
from PyQt5.QtGui import QFont, QColor, QPalette
class MainFrame(QMainWindow):
def __init__(self):
super().__init__()
self.initUI()
def initUI(self):
self.setWindowFlags(QtCore.Qt.WindowStaysOnTopHint|QtCore.Qt.WindowMinimizeButtonHint)
font = QFont()
font.setPointSize(16)
self.timeLabel = QLabel(self)
self.timeLabel.setFont(font)
self.timeLabel.resize(300, 30)
timer = QTimer(self)
timer.timeout.connect(self.showtime)
timer.start()
self.label = QLabel("输入休息间隔时长(M)", self)
self.label.setFont(font)
self.label.move(50, 50)
self.label.resize(250, 30)
self.edit = QLineEdit(self)
self.edit.setFont(font)
self.edit.move(125, 95)
self.edit.resize(50, 30)
self.btn = QPushButton("确认", self)
self.btn.resize(150, 30)
self.btn.move(75, 150)
self.resize(300, 200)
self.setWindowTitle('护眼助手')
self.show()
"""
实时显示时间
"""
def showtime(self):
datetime = QDateTime.currentDateTime()
timeText = datetime.toString()
self.timeLabel.setText(" " + timeText)
def clickHandel(self):
try:
minutes = int(self.edit.text())
self.close()
self.littleFrame = LittleFrame(minutes)
self.littleFrame.show()
except Exception as e:
QMessageBox.information(self, "提示", "请输入整数")
class LittleFrame(QMainWindow):
def __init__(self,minutes):
super().__init__()
self.initUI()
self.minutes = minutes
self.second = minutes * 60
def initUI(self):
self.desktop = QApplication.desktop()
# 获取显示器分辨率大小
self.screenRect = self.desktop.screenGeometry()
self.height = self.screenRect.height()
self.width = self.screenRect.width()
self.setGeometry(self.width*0.85, self.height*0.8, 250, 80)
# self.setFixedSize(self.width*0.9, self.height*0.9)
#禁用最大化按钮 #置顶
self.setWindowFlags(QtCore.Qt.WindowCloseButtonHint|QtCore.Qt.WindowStaysOnTopHint)
self.setWindowTitle('护眼助手运行中...')
font = QFont()
font.setPointSize(16)
self.timeLabel = QLabel(self)
self.timeLabel.setFont(font)
self.timeLabel.move(40,15)
self.timeLabel.resize(250,50)
self.timer = QTimer(self)
self.timer.setInterval(1000)
self.timer.timeout.connect(self.showtime)
self.timer.start()
"""
实时显示时间
"""
def showtime(self):
if self.second == 0:
self.close()
self.restFrame = RestFrame()
self.restFrame.setStyleSheet("#MainWindow{background-color: yellow}")
self.restFrame.show()
self.timeLabel.setText(str(self.second).zfill(2) + "秒后休息哦")
self.second -= 1
class RestFrame(QMainWindow):
def __init__(self):
super().__init__()
self.initUI()
def initUI(self):
self.desktop = QApplication.desktop()
# 获取显示器分辨率大小
self.screenRect = self.desktop.screenGeometry()
self.height = self.screenRect.height()
self.width = self.screenRect.width()
self.setGeometry(self.width*0.05, self.height*0.05, self.width*0.9, self.height*0.9)
# self.setFixedSize(self.width*0.9, self.height*0.9)
#禁用最大化按钮 #置顶
self.setWindowFlags(QtCore.Qt.FramelessWindowHint|QtCore.Qt.WindowMinimizeButtonHint|QtCore.Qt.WindowStaysOnTopHint)
self.setStyleSheet("#MainWindow{background-color: yellow}")
font = QFont()
font.setPointSize(80)
self.titleLabel = QLabel(self)
self.titleLabel.setText("休息中哦...")
self.titleLabel.resize(self.width,self.height/2)
self.titleLabel.move(self.width*0.3, self.height*0.3)
self.titleLabel.setFont(font)
self.setWindowTitle('休息中...')
if __name__ == '__main__':
app = QApplication(sys.argv)
a = MainFrame()
a.show()
a.btn.clicked.connect(a.clickHandel)
sys.exit(app.exec_())
结束语
写的比较low,毕竟第一次接触 pyqt5 (不是我找借口,展示),如果有什么更好的想法、建议。请各位一定不要吝啬,大方的提出来(这样才能体现您的大气)。
thanks!!!!!!
网友评论