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 相关文章推荐
Ubuntu 16.04 LTS中源码安装Python 3.6.0的方法教程
Dec 27 Python
Python实现将json文件中向量写入Excel的方法
Mar 26 Python
详解Python3中ceil()函数用法
Feb 19 Python
一篇文章弄懂Python中所有数组数据类型
Jun 23 Python
python内存监控工具memory_profiler和guppy的用法详解
Jul 29 Python
python爬虫 execjs安装配置及使用
Jul 30 Python
django自带调试服务器的使用详解
Aug 29 Python
利用python计算时间差(返回天数)
Sep 07 Python
使用Python将xmind脑图转成excel用例的实现代码(一)
Oct 12 Python
详解Scrapy Redis入门实战
Nov 18 Python
Python Pandas list列表数据列拆分成多行的方法实现
Dec 14 Python
教你使用pyinstaller打包Python教程
May 27 Python
Python爬虫之爬取某文库文档数据
Apr 21 #Python
Python数据分析之pandas函数详解
Apr 21 #Python
python基础之停用词过滤详解
Apr 21 #Python
python 模拟在天空中放风筝的示例代码
如何使用Python对NetCDF数据做空间相关分析
python实现简单倒计时功能
python Polars库的使用简介
You might like
使用php重新实现PHP脚本引擎内置函数
2007/03/06 PHP
php正则表达式(regar expression)
2011/09/10 PHP
PHP接入支付宝接口失效流程详解
2020/11/10 PHP
js 自制滚动条的小例子
2013/03/16 Javascript
js动态修改input输入框的type属性(实现方法解析)
2013/11/13 Javascript
浅析IE10兼容性问题(frameset的cols属性)
2014/01/03 Javascript
JavaScript通过代码调用Flash显示的方法
2016/02/02 Javascript
Node.js的MongoDB驱动Mongoose基本使用教程
2016/03/01 Javascript
javascript iframe跨域详解
2016/10/26 Javascript
Java中int与integer的区别(基本数据类型与引用数据类型)
2017/02/19 Javascript
详谈js遍历集合(Array,Map,Set)
2017/04/06 Javascript
基于Vue实现timepicker
2017/04/25 Javascript
vue子组件使用自定义事件向父组件传递数据
2017/05/27 Javascript
原生js 封装get ,post, delete 请求的实例
2017/08/11 Javascript
Thinkjs3新手入门之如何使用静态资源目录
2017/12/06 Javascript
angularjs实现table增加tr的方法
2018/02/27 Javascript
JS中的算法与数据结构之二叉查找树(Binary Sort Tree)实例详解
2019/08/16 Javascript
element的el-table中记录滚动条位置的示例代码
2019/11/06 Javascript
Vue的transition-group与Virtual Dom Diff算法的使用
2019/12/09 Javascript
node使用request请求的方法
2019/12/20 Javascript
完美解决python遍历删除字典里值为空的元素报错问题
2016/09/11 Python
Python使用sklearn库实现的各种分类算法简单应用小结
2019/07/04 Python
python“静态”变量、实例变量与本地变量的声明示例
2020/11/13 Python
Python调用Redis的示例代码
2020/11/24 Python
意大利网上书店:LaFeltrinelli
2020/06/12 全球购物
养殖行业的创业计划书
2014/01/05 职场文书
大四学生思想汇报
2014/01/13 职场文书
省三好学生申请材料
2014/01/22 职场文书
公司中秋节活动方案
2014/02/12 职场文书
装修协议书范本
2014/04/21 职场文书
防灾减灾日活动总结
2014/08/26 职场文书
群众路线教育实践活动自我剖析思想汇报
2014/10/04 职场文书
幸福家庭事迹材料
2014/12/20 职场文书
SpringBoot 拦截器妙用你真的了解吗
2021/07/01 Java/Android
关于python爬虫应用urllib库作用分析
2021/09/04 Python
大脑的记忆过程在做数据压缩,不同图形也有共同的记忆格式
2022/04/29 数码科技