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字符串连接方式汇总
Aug 21 Python
Python随机生成手机号、数字的方法详解
Jul 21 Python
查看python下OpenCV版本的方法
Aug 03 Python
pygame游戏之旅 调用按钮实现游戏开始功能
Nov 21 Python
如何利用Python分析出微信朋友男女统计图
Jan 25 Python
python+selenium 定位到元素,无法点击的解决方法
Jan 30 Python
说说如何遍历Python列表的方法示例
Feb 11 Python
python 杀死自身进程的实现方法
Jul 01 Python
python 发送json数据操作实例分析
Oct 15 Python
tensorboard显示空白的解决
Feb 15 Python
解决python 执行sql语句时所传参数含有单引号的问题
Jun 06 Python
使用pytorch实现线性回归
Apr 11 Python
Python爬虫之爬取某文库文档数据
Apr 21 #Python
Python数据分析之pandas函数详解
Apr 21 #Python
python基础之停用词过滤详解
Apr 21 #Python
python 模拟在天空中放风筝的示例代码
如何使用Python对NetCDF数据做空间相关分析
python实现简单倒计时功能
python Polars库的使用简介
You might like
模仿OSO的论坛(一)
2006/10/09 PHP
PHP批量生成静态HTML的简单原理和方法
2014/04/20 PHP
php 购物车完整实现代码
2014/06/05 PHP
PHP数组去重比较快的实现方式
2016/01/19 PHP
简单的pgsql pdo php操作类实现代码
2016/08/25 PHP
jquery 表单进行客户端验证demo
2009/08/24 Javascript
动态样式类封装JS代码
2009/09/02 Javascript
js数组的操作指南
2014/12/28 Javascript
使用javascript将时间转换成今天,昨天,前天等格式
2015/06/25 Javascript
JavaScript中的this,call,apply使用及区别详解
2016/01/29 Javascript
Javascript实现登录记住用户名和密码功能
2017/03/22 Javascript
微信小程序 列表的上拉加载和下拉刷新的实现
2017/04/01 Javascript
JS实现商品筛选功能
2020/08/19 Javascript
微信小程序倒计时功能实现代码
2017/11/09 Javascript
windows系统下更新nodejs版本的方案
2017/11/24 NodeJs
jQuery length 和 size()区别总结
2018/04/26 jQuery
Angular7创建项目、组件、服务以及服务的使用
2019/02/19 Javascript
简单了解TypeScript中如何继承 Error 类
2019/06/21 Javascript
Python version 2.7 required, which was not found in the registry
2014/08/26 Python
Python实现读取及写入csv文件的方法示例
2018/01/12 Python
python实现excel读写数据
2021/03/02 Python
python中使用print输出中文的方法
2018/07/16 Python
python实现根据指定字符截取对应的行的内容方法
2018/10/23 Python
解决每次打开pycharm直接进入项目的问题
2018/10/28 Python
Django框架模板注入操作示例【变量传递到模板】
2018/12/19 Python
Python matplotlib绘制图形实例(包括点,曲线,注释和箭头)
2020/04/17 Python
Python读取Excel一列并计算所有对象出现次数的方法
2020/09/04 Python
Python爬虫后获取重定向url的两种方法
2021/01/19 Python
SHEIN香港:价格实惠的女性时尚服装
2018/08/14 全球购物
Gerry Weber德国官网:优质女性时装,德国最大的时装公司之一
2019/11/02 全球购物
俄罗斯首家面向中国消费者的一站式购物网站:Wruru
2020/05/08 全球购物
小学庆六一活动方案
2014/02/28 职场文书
党校培训自我鉴定范文
2014/03/20 职场文书
学前教育专业求职信
2014/09/02 职场文书
党的群众路线教育实践活动个人整改方案
2014/10/25 职场文书
2015年庆祝国庆节66周年演讲稿
2015/07/30 职场文书