美文网首页程序员
快瞎了,我用Python保护我的眼睛

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

作者: Negen | 来源:发表于2019-02-28 15:57 被阅读0次

背景

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

    背景 最近看上班看电脑感觉越来越费劲,眼睛越来越不舒服,偶尔还会有几滴眼泪出来,这时我终于意识到了一定是用眼过度,...

  • 我的眼睛快瞎了

    肩膀有点瘦弱了 长得有点像火柴

  • 眼睛快瞎了

    年初就立下flag,一定要戒掉手机,一年过去了,又是空头支票,唉!今天又看了一天手机,下午明显感觉眼睛要瞎了,很多...

  • 我的眼睛瞎了

    门口小贩们的叫卖声一大早就嚷嚷什么 我看不见光 我的眼睛瞎了 我的黎明还被黑夜冻着 我是十万个失眠者其中的一个 我...

  • 黑白画

    妈呀!朕的眼睛快瞎了!

  • 我的眼睛快要瞎了

    早上起床的时候,妈妈像往常一样开了房灯,女儿就开始哭着说:“太亮了,我的眼睛都快要瞎了。”妈妈无奈关灯,女儿...

  • 我的眼睛要瞎了

    13年前,我被确诊为糖尿病,从此,我与医院结下了不解之缘,13年来,不知道去过多少次医院,吃了多少药。 就算如此,...

  • 我的眼睛似乎瞎了

    我只记得我小时候的视力是非常好的,可以在晴朗的夏夜数星星,可以在空阔的原野里眺望远处,可以看清水底的鱼,可以看清墙...

  • 男神。

    各种几何形,眼睛快瞎了。?‍♀️ Photoshop 小试牛刀~?

  • 我女朋友眼睛瞎了

    -下一位病人。 -医生,我女朋友眼睛瞎了。 -你女朋友她人呢? -在家里。 -什么时候发现她失明了? -昨天,她自...

网友评论

    本文标题:快瞎了,我用Python保护我的眼睛

    本文链接:https://www.haomeiwen.com/subject/dptkuqtx.html