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、Javascript中的闭包比较
Feb 04 Python
Python利用递归和walk()遍历目录文件的方法示例
Jul 14 Python
Python3.遍历某文件夹提取特定文件名的实例
Apr 26 Python
python读取excel指定列数据并写入到新的excel方法
Jul 10 Python
如何用python写一个简单的词法分析器
Dec 18 Python
python读取图片任意范围区域
Jan 23 Python
如何使用python爬虫爬取要登陆的网站
Jul 12 Python
在PyCharm的 Terminal(终端)切换Python版本的方法
Aug 02 Python
django组合搜索实现过程详解(附代码)
Aug 06 Python
Python获取、格式化当前时间日期的方法
Feb 10 Python
Django+Celery实现动态配置定时任务的方法示例
May 26 Python
python subprocess pipe 实时输出日志的操作
Dec 05 Python
Python爬虫之爬取某文库文档数据
Apr 21 #Python
Python数据分析之pandas函数详解
Apr 21 #Python
python基础之停用词过滤详解
Apr 21 #Python
python 模拟在天空中放风筝的示例代码
如何使用Python对NetCDF数据做空间相关分析
python实现简单倒计时功能
python Polars库的使用简介
You might like
十天学会php之第九天
2006/10/09 PHP
别人整理的服务器变量:$_SERVER
2006/10/20 PHP
PHP memcache扩展的三种安装方法
2009/04/26 PHP
PHP中$_FILES的使用方法及注意事项说明
2014/02/14 PHP
php创建和删除目录函数介绍和递归删除目录函数分享
2014/11/18 PHP
php爬取天猫和淘宝商品数据
2018/02/23 PHP
javascript 获取网页参数系统
2008/07/19 Javascript
Prototype Array对象 学习
2009/07/19 Javascript
jquery autocomplete自动完成插件的的使用方法
2010/08/07 Javascript
基于jQuery的图片大小自动适应实现代码
2010/11/17 Javascript
javascript时间自动刷新实现原理与步骤
2013/01/06 Javascript
innerHTML在IE中报错解决方案
2014/12/15 Javascript
判断浏览器的内核及版本号方法汇总
2015/01/05 Javascript
js文本框输入内容智能提示效果
2015/12/02 Javascript
JavaScript中的Array 对象(数组对象)
2016/06/02 Javascript
微信小程序 toast 详解及实例代码
2016/11/09 Javascript
Nodejs+express+ejs简单使用实例代码
2017/09/18 NodeJs
Node.js成为Web应用开发最佳选择的原因
2018/02/05 Javascript
vue脚手架及vue-router基本使用
2018/04/09 Javascript
详解js根据百度地图提供经纬度计算两点距离
2019/05/13 Javascript
layui添加动态菜单与选项卡
2019/07/26 Javascript
vue中组件通信详解(父子组件, 爷孙组件, 兄弟组件)
2020/07/27 Javascript
JavaScript实现图片放大预览效果
2020/11/02 Javascript
python实现mysql的读写分离及负载均衡
2018/02/04 Python
python获取微信企业号打卡数据并生成windows计划任务
2019/04/30 Python
如何用Python来搭建一个简单的推荐系统
2019/08/07 Python
Python 实现加密过的PDF文件转WORD格式
2020/02/04 Python
python爬虫学习笔记之Beautifulsoup模块用法详解
2020/04/09 Python
Python填充任意颜色,不同算法时间差异分析说明
2020/05/16 Python
python图片合成的示例
2020/11/09 Python
Canvas实现放大镜效果完整案例分析(附代码)
2020/11/26 HTML / CSS
计算机专业推荐信范文
2013/11/20 职场文书
医药学专业大学生职业生涯规划书论文
2014/01/21 职场文书
高级销售求职信
2014/02/21 职场文书
辩护意见书
2015/06/04 职场文书
婚庆主持词大全
2015/06/30 职场文书