python tkinter实现定时关机


Posted in Python onApril 21, 2021

本文实例为大家分享了python tkinter实现定时关机的具体代码,供大家参考,具体内容如下

很早以前写的,懒得修改,代码很简单,适合初学者

运行效果图如下:

python tkinter实现定时关机

使用注意

  • 设定时间后点击开始即可实现定时关机,同时窗口也会关闭
  • 想要取消关机的话,再次打开,点取消即可

代码如下

import os,time
# import multiprocessing
import threading
from tkinter import *
from tkinter import ttk
import tkinter.messagebox as message_box
window =Tk()
window.title('auto_shutdown')
window.geometry('240x180')
window.resizable(False, False)
window.update() 
var = StringVar()
var1 = StringVar()
var2 = StringVar()
# 设置func为守护线程
def funcs():
 t = threading.Thread(target=func)
 t.setDaemon(True)
 t.start()
# 执行自动关机指令
def func():
 #弹出messagebox警告提示
 message_box.showwarning("Warning", "Your pc will shutdown at %s : %s" % (var.get(),var1.get()))
 print('wohaizai')
 mytime = time.strftime('%H:%M:%S')
 h2 = mytime[0:2]
 m2 = mytime[3:5]
 s2 = mytime[6:]
 print(h2)
 print(m2)
 print(s2)
 print(var.get())
 print(var1.get())
 # 算出距离关机时间的秒数
 count_down_second=-int(h2)*3600-int(m2)*60-int(s2)+int(var.get())*3600+int(var1.get())*60+int(var2.get())
 # 如果关机设置在第二天,结果加86400(一天的总秒数)
 if count_down_second<0:
  count_down_second=count_down_second+86400
 os.system("shutdown -s -t %s" % count_down_second)
 print(count_down_second)
 window.quit()


# 快捷关机选项入口
def fun_set1():
 cb_h.current(18)
def fun_set2():
 cb_h.current(21)
def fun_set3():
 cb_h.current(22)
def fun_set4():
 cb_h.current(23)
def funcq():
 os.system('shutdown -a')

# 定义三个容器,方便布局
root = ttk.LabelFrame(window, text="定时关机")
root.grid(column=0, row=0,padx=2, pady=2)
root1 = ttk.LabelFrame(window, text="常用时间")
root1.grid(column=1, row=0,padx=2, pady=2)
root2 = ttk.LabelFrame(window, text="开始")
root2.grid(column=0, row=1,columnspan=2,padx=2, pady=2)




Label(root,text=':').grid(column=1, row=0,padx=2, pady=5)

cb_h = ttk.Combobox(root,width=3,textvariable =var)
a = []
for i in range(10):
 a.append(('0'+str(i)))
for i in range(10,24):
 a.append(i)
 cb_h['values'] =tuple(a)
cb_h.current(0)
cb_h.grid(column=0, row=0,padx=2, pady=5)


cb_m = ttk.Combobox(root,width=3,textvariable =var1)

b = []
for i in range(10):
 b.append('0'+str(i))

for i in range(10,60):
 b.append(str(i))
 cb_m['values'] =tuple(b)
cb_m.current(0)
cb_m.grid(column=2, row=0,padx=2, pady=5)

cb_s = ttk.Combobox(root,width=3,textvariable =var2)

c = []
for i in range(10):
 c.append('0'+str(i))

for i in range(10,60):
 c.append(str(i))
 cb_s['values'] =tuple(c)
cb_s.current(0)
cb_s.grid(columnspan=3, row=1,padx=2, pady=6)



Button(root1,text = '18:00',command = fun_set1).grid(column=0, row=0,padx=2, pady=2)
Button(root1,text = '21:00',command = fun_set2).grid(column=1, row=0,padx=2, pady=2)
Button(root1,text = '22:00',command = fun_set3).grid(column=0, row=1,padx=2, pady=2)
Button(root1,text = '23:00',command = fun_set4).grid(column=1, row=1,padx=2, pady=2)



b1=Button(root2,text = '开始',command = funcs,height =2,width =6)
b1.grid(column=0, row=0,padx=24, pady=2)
b1=Button(root2,text = '取消',command = funcq,height =2,width =6)
b1.grid(column=1, row=0,padx=24, pady=2)

root.mainloop()

项目的github地址

ps:已打包为exe格式,可在dist目录下找到

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python中循环引用(import)失败的解决方法
Apr 22 Python
python实现自主查询实时天气
Jun 22 Python
python pandas库的安装和创建
Jan 10 Python
使用TensorFlow实现二分类的方法示例
Feb 05 Python
python使用thrift教程的方法示例
Mar 21 Python
python交互模式下输入换行/输入多行命令的方法
Jul 02 Python
python 字符串追加实例
Jul 20 Python
Python大数据之网络爬虫的post请求、get请求区别实例分析
Nov 16 Python
python二分法查找算法实现方法【递归与非递归】
Dec 06 Python
Python编译为二进制so可执行文件实例
Dec 23 Python
详解用Python进行时间序列预测的7种方法
Mar 13 Python
Python读取二进制文件代码方法解析
Jun 22 Python
Python爬虫之爬取某文库文档数据
Apr 21 #Python
Python数据分析之pandas函数详解
Apr 21 #Python
python基础之停用词过滤详解
Apr 21 #Python
python 模拟在天空中放风筝的示例代码
如何使用Python对NetCDF数据做空间相关分析
python实现简单倒计时功能
python Polars库的使用简介
You might like
使用一个for循环将N*N的二维数组的所有值置1实现方法
2017/05/29 PHP
php从数据库中获取数据用ajax传送到前台的方法
2018/08/20 PHP
发两个小东西,ASP/PHP 学习工具。 用JavaScript写的
2007/04/12 Javascript
各情景下元素宽高的获取实现代码
2011/09/13 Javascript
JavaScript代码简单实现求杨辉三角给定行的最大值
2013/10/29 Javascript
JS获取农历日期具体实例
2013/11/14 Javascript
基于jquery实现的文字淡入淡出效果
2013/11/14 Javascript
使用Web Uploader实现多文件上传
2016/06/08 Javascript
js实现的光标位置工具函数示例
2016/10/03 Javascript
基于Javascript实现文件实时加载进度的方法
2016/10/12 Javascript
JavaScript正则表达式exec/g实现多次循环用法示例
2017/01/17 Javascript
JavaScript基于Dom操作实现查找、修改HTML元素的内容及属性的方法
2017/01/20 Javascript
jquery封装插件时匿名函数形参和实参的写法解释
2017/02/14 Javascript
js canvas实现适用于移动端的百分比仪表盘dashboard
2017/07/18 Javascript
jQuery初级教程之网站品牌列表效果
2017/08/02 jQuery
最全正则表达式总结:验证QQ号、手机号、Email、中文、邮编、身份证、IP地址等
2017/08/16 Javascript
vuex state及mapState的基础用法详解
2018/04/19 Javascript
vue中使用element-ui进行表单验证的实例代码
2018/06/22 Javascript
CKeditor富文本编辑器使用技巧之添加自定义插件的方法
2019/06/14 Javascript
解决layUI的页面显示不全的问题
2019/09/20 Javascript
vue实现页面切换滑动效果
2020/06/29 Javascript
python中查看变量内存地址的方法
2015/05/05 Python
python批量下载抖音视频
2019/06/17 Python
Django框架ORM数据库操作实例详解
2019/11/07 Python
Python模拟伯努利试验和二项分布代码实例
2020/05/27 Python
HTML5 video进入全屏和退出全屏的实现方法
2020/07/28 HTML / CSS
戴尔加拿大官网:Dell加拿大
2016/09/17 全球购物
印度领先的眼镜电子商务网站:Lenskart
2019/12/16 全球购物
大学生自我鉴定
2013/12/16 职场文书
小区门卫岗位职责
2013/12/31 职场文书
环保专项行动方案
2014/05/12 职场文书
毕业生自荐材料范文
2014/12/30 职场文书
优秀党员个人总结
2015/02/14 职场文书
试用期旷工辞退通知书
2015/04/17 职场文书
中小学生安全教育观后感
2015/06/17 职场文书
JavaScript数组 几个常用方法总结
2021/11/11 Javascript