zoukankan      html  css  js  c++  java
  • 用Python弹窗定时记录工作

    工作一天下来 , 忙个忙死 , 回想下又不知道干了什么 .

    • 撸代码
    • 分析需求
    • 开会
    • balabala ...

    之前弄了个定时提醒 , 一个小时提醒一次 , 提示记录一下工作 . 不要盲目 .

    利用Win10计划任务 + 弹窗,提醒你自己

    操作起来还是不够便利 , 索性在弹窗里直接记录好了.

    脚本来一打

    #!/usr/bin/env python
    # -*- coding: utf-8 -*-
    
    from tkinter import *
    import time
    from tkinter import messagebox
    import os
    
    # 内容要保存的目录
    DATA_DIR = "/path/to/work_record"  # 结尾不要跟 分隔符
    # 本脚本所在的目录,为的是怕忘记了
    PY_DIR = "/path/to/pyshell/pyrecord.py"
    
    
    class MY_GUI():
        def __init__(self, init_window_name):
            self.init_window_name = init_window_name
    
        # 设置窗口
        def set_init_window(self):
            self.init_window_name.title("Hour Record")  # 窗口名
            # self.init_window_name.geometry('320x160+10+10')                         #290 160为窗口大小,+10 +10 定义窗口弹出时的默认展示位置
            self.init_window_name.geometry('480x240-100-100')
            # self.init_window_name["bg"] = "pink"                                    #窗口背景色,其他背景色见:blog.csdn.net/chl0000/article/details/7657887
            # self.init_window_name.attributes("-alpha",0.9)                          #虚化,值越小虚化程度越高
    
            self.init_window_name.bind("<Control-s>", self.keyRecord)                  # 快捷键 Ctrl+s 保存并关闭窗口
            self.init_window_name.bind("<Control-h>", self.keyDirFunc)                 # 快捷键 Ctrl+h 显示目录
            self.init_window_name.bind("<Control-q>", self.keyQuit)                    # 快捷键 Ctrl+q 直接退出
            # 文本框
            self.init_data_Text = Text(self.init_window_name, width=68, height=16)  # 录入框
            self.init_data_Text.focus_set()
            self.init_data_Text.grid(row=0, column=0, columnspan=3)
            # 按钮
            self.dir_button = Button(self.init_window_name, text="目录", bg="#ccc", width=18,
                                     command=self.dirFunc)  # 调用内部方法  加()为直接调用
    
            self.dir_button.grid(row=1, column=0)
            self.str_trans_to_md5_button = Button(self.init_window_name, text="O  K", bg="lightblue", width=48,
                                                  command=self.record)  # 调用内部方法  加()为直接调用
            self.str_trans_to_md5_button.grid(row=1, column=1, columnspan=2)
    
        def keyQuit(self,event):
            self.init_window_name.destroy()
    
        def keyDirFunc(self,event):
            self.dirFunc()
    
        def dirFunc(self):
            messagebox.showinfo("目录", "保存目录:" + DATA_DIR + "
     脚本目录:" + PY_DIR)
    
        def keyRecord(self,event):
            self.record()
    
        def record(self):
            src = self.init_data_Text.get(1.0, END)
            filename = time.strftime('%Y%m', time.localtime(time.time())) + ".md"               # 文件直接保存为 .md , 个人喜欢使用markdown来写作.
            file = open(file=DATA_DIR + os.sep + filename, mode="a+", encoding='utf-8')
    
            cont = "
    
    " + time.strftime('%Y-%m-%d %H:%M:%S', time.localtime(time.time())) + "
    ---
    " + str(src)
    
            file.write(cont)
    
            self.init_window_name.destroy()
    
    
    
    def gui_start():
        init_window = Tk()  # 实例化出一个父窗口
        ZMJ_PORTAL = MY_GUI(init_window)
        # 设置根窗口默认属性
        ZMJ_PORTAL.set_init_window()
    
        init_window.mainloop()  # 父窗口进入事件循环,可以理解为保持窗口运行,否则界面不展示
    
    
    gui_start()
    

    界面

    界面丑了点 , 用起来还可以.

    结语

    • 文件输出为markdown
    • 文件名格式为: 202005.md (%Y%m.md)
    • 记录内容为:
    2020-05-09 10:09:02
    ---
    第一次记录
    把这个脚本撸完整了, 就这么用了  
    然后写个博客记录一下, 正在写博客
    
    

    TODO

    • [ ] 自动同步到git上去 . 可以方便多台电脑共享
  • 相关阅读:
    acwing2-01背包问题
    背包问题(转载)
    考研易错点 二叉树的度和图的度
    考研易错点*s++
    考研复习易错点数组指针和指针数组
    Android Crash Learning
    Mysql5.7中的分组排序
    康师傅JVM:StringTable(十三)
    RocketMQ集群搭建
    RocketMq的单机安装
  • 原文地址:https://www.cnblogs.com/ElEGenT/p/12855692.html
Copyright © 2011-2022 走看看