快瞎了,我用Python保护我的眼睛

背景

最近看上班看电脑感觉越来越费劲,眼睛越来越不舒服,偶尔还会有几滴眼泪出来,这时我终于意识到了一定是用眼过度,平均每天不低于八小时盯着屏幕,眼睛没有得到适当的休息,所以才会导致眼睛越来越酸痛。于是,我花了半天的时间,用 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!!!!!!

你可能感兴趣的:(快瞎了,我用Python保护我的眼睛)