保护眼睛小程序
import wx
import time
from datetime import datetime, timedelta
class MyFrame(wx.Frame):
def init(self):
super().init(None, title='用眼提醒', size=wx.Size(800, 600))
self.SetWindowStyle(wx.STAY_ON_TOP)
# 创建自定义按钮
self.b = wx.Button(parent=self, label='用眼已经超过20分钟了\n休息休息!!!\n点击文字可以关闭窗口', style=wx.BORDER_NONE)
font = wx.Font(32, wx.FONTFAMILY_DEFAULT, wx.FONTSTYLE_NORMAL, wx.FONTWEIGHT_NORMAL)
self.b.SetFont(font)
self.b.SetBackgroundColour(wx.Colour(255, 255, 255, 0)) # 设置透明背景
self.b.SetForegroundColour(wx.Colour(0, 0, 0)) # 设置字体颜色为黑色
self.Bind(wx.EVT_BUTTON, self.on_click, self.b)
# 使用布局管理器
vbox = wx.BoxSizer(wx.VERTICAL)
vbox.Add(self.b, proportion=1, flag=wx.EXPAND | wx.BOTTOM, border=5)
self.SetSizer(vbox)
# 初始化倒计时相关变量
self.remaining_time = 3 # 倒计时初始为3秒
def on_click(self, event):
# 开始倒计时
self.update_countdown()
def update_countdown(self):
if self.remaining_time > 0:
# 更新按钮文本
self.b.SetLabel(f'20分钟后将再次提示\n {self.remaining_time} 秒后窗口自动关闭')
self.remaining_time -= 1
# 每秒调用一次更新倒计时
wx.CallLater(1000, self.update_countdown)
else:
# 倒计时结束,关闭窗口
self.close_window()
def close_window(self):
self.Close()
def task():
app = wx.App()
frm = MyFrame()
frm.Centre()
frm.ShowFullScreen(True)
frm.Show()
app.MainLoop()
def main():
next_run_time = datetime.now() + timedelta(minutes=0)
while True:
current_time = datetime.now()
if current_time >= next_run_time:
task()
next_run_time = current_time + timedelta(minutes=20)
time.sleep(1)
if name == "main":
main()

浙公网安备 33010602011771号