对于喜欢用电脑的人来说,
一旦往那里一坐,就很容易忘记时间,
接触到Python的我们,当然是要自己DIY一个闹钟啦,而且一定要醒目!
这个时候我就想到了tkinter
1- 需要的库:
- tkinter
- datetime
- time
2- tkinter最简单的使用
import tkinter
root = tkinter.Tk()
root.mainloop()
导入tkinter,实例化一个Tk类,进入主循环,完成,一个窗口就创建好了,
像下面这样:
3- 无边框tkinter窗口的创建
root.overrideredirect(True)
把窗口的边框给去掉,用上面这个函数,参数设置为True就可以了
root.geometry("{0}x{1}+0+0".format(
root.winfo_screenwidth(),
root.winfo_screenheight()))
把窗口的长宽设置为屏幕的长宽,这样就能铺满整个屏幕,醒目!
# 这里用来设定字体,字体本身为黑色,字体背景为白色
tkinter.Label(root, text=word_text, fg='black', bg='white',
# 字体是微软雅黑, 大小是100
font=('Microsoft YaHei', 100)
# 把label这个控件居中
).place(anchor='center',
relx=0.5,
rely=0.5)
label控件一般是用来显示文字的,把label居中,
字体设置为微软雅黑,大小是100,字体颜色是黑色,label控件的颜色为白色
4- 时间的获取
import datetime
def get_time():
hour = datetime.datetime.now().hour
minute = datetime.datetime.now().minute
return hour, minute
闹钟就是在固定的时间提醒你,
所以要获取现在的时间,和我们设定的时间进行对比,
到了时间,弹出窗口,达到提醒的效果
5- 代码
import datetime
import time
import tkinter
HOUR = 20 # 几点
MINUTE = 38 # 几分
MESSAGE = "是时候睡觉了!"
TIMES = 5 # 提醒多少次
INTERVAL = 2 # 每次弹窗窗口间隔的秒数
class Reminder(object):
def __init__(self, word_text):
# 初始化
self.root = tkinter.Tk()
# 把窗口的边框给去掉
self.root.overrideredirect(True)
# 设置窗口的大小
self.root.geometry("{0}x{1}+0+0".format(
self.root.winfo_screenwidth(),
self.root.winfo_screenheight()))
# 设置整个窗口的背景为白色
self.root.configure(bg='white')
# 这里用来设定字体,字体本身为黑色,字体背景为白色
tkinter.Label(self.root, text=word_text, fg='black', bg='white',
# 字体是微软雅黑, 大小是100
font=('Microsoft YaHei', 100)
# label这个控件居中
).place(anchor='center',
relx=0.5,
rely=0.5)
# 在窗口创建之后执行 self.show 这个函数
# 这里这样处理,才能达到后面窗口显示2秒再消失的效果
self.root.after_idle(self.show)
def hide(self):
"""
隐藏窗口并退出
"""
self.root.withdraw()
self.root.quit()
def show(self):
"""
显示窗口,持续2秒钟
"""
self.root.deiconify()
self.root.after(1000 * 2, self.hide)
def start(self):
"""
进入死循环,这样窗口才能一直存在
"""
self.root.mainloop()
def get_time():
hour = datetime.datetime.now().hour
minute = datetime.datetime.now().minute
return hour, minute
def prompt():
"""
弹出窗口
"""
root = Reminder(MESSAGE)
root.start()
time.sleep(INTERVAL)
def main():
# 这里的while循环是为了保证时间没到,脚本不会退出
while True:
hour, minute = get_time()
# 判断小时数和分钟数
if hour == HOUR and minute >= MINUTE:
# 一般这里都是一个字母i,
# 我这里纯粹就想循环五次
# Python里面就可以用 _ 来替代
for _ in range(TIMES):
prompt()
break
if __name__ == '__main__':
main()
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。
举报投诉
-
True
+关注
关注
0文章
9浏览量
11947 -
窗口
+关注
关注
0文章
66浏览量
10848 -
函数
+关注
关注
3文章
4308浏览量
62445
发布评论请先 登录
相关推荐
怎样去设计一个基于单片机的定时闹钟
确定修改结束。用扫描方式动态显示时、分、秒,第2,4 数码管加小数点,并且要求第4数码管小数点每秒闪烁一次。可以设置闹钟,到时间蜂鸣器报警难点及技巧:1、通过在定时器中断来设置标志位
发表于 01-13 08:26
【地平线旭日X3派试用体验】40P接口程序开发体验-基于Python+Tkinter的串口调试助手
开发,不必关注底层硬件个细节,十分方便高效。本串口调试助手抛砖引玉,后面可以编写PWM,IO,IIC,SPI等总线的监控或者调试助手,配上图形界面的上位机程序,甚至可以将本板一举改造为高效的总线调试工具。
发表于 07-11 23:56
【飞凌RK3568开发板试用体验】tkinter的第一个桌面程序
:好象是替代pyqt;Wx :是python当中居中的一个图形化,学习结构很清晰Pywin :是python windows 下的模块,摄像头控制(opencv),常用于外挂
发表于 12-03 07:36
如何用Python制作一个自动发送程序
怎么办呢?是时候让Python登场了! Python登场 这次我们来做一个自动发送微信的程序,在深夜十二点的时候给女朋友发去消息,也算是尽了一
使用Arduino和Python Tkinter进行RGB Led控制
电子发烧友网站提供《使用Arduino和Python Tkinter进行RGB Led控制.zip》资料免费下载
发表于 11-30 12:00
•0次下载
如何把Python脚本集成到GUI工具包-Tkinter
Tkinter(即 tk interface,简称“Tk”)本质上是对 Tcl/Tk 软件包的 Python 接口封装,它是 Python 官方推荐的 GUI 工具包,属于 Python
Python写机器人上位机
Python写GUI的插件比较多,常用的有Tkinter、pyqt5,本将使用pyqt5写机器人的上位机。Tkinter 是 Python的标准 GUI 库,是
发表于 05-09 11:10
•0次下载
python如何打开gui界面
在Python中打开GUI界面,可以使用多种库或框架,如Tkinter、PyQt、wxPython等。下面将详细介绍如何使用Tkinter创建一个
评论