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 29 Python
python统计文本文件内单词数量的方法
May 30 Python
python实现批量图片格式转换
Jun 16 Python
Python 忽略warning的输出方法
Oct 18 Python
python在TXT文件中按照某一字符串取出该字符串所在的行方法
Dec 10 Python
python实战串口助手_解决8串口多个发送的问题
Jun 12 Python
3行Python代码实现图像照片抠图和换底色的方法
Oct 10 Python
Python基本类型的连接组合和互相转换方式(13种)
Dec 16 Python
Python调用Windows命令打印文件
Feb 07 Python
Python发送邮件封装实现过程详解
May 09 Python
Python就将所有的英文单词首字母变成大写
Feb 12 Python
Python可视化神器pyecharts之绘制地理图表练习
Jul 07 Python
Python爬虫之爬取某文库文档数据
Apr 21 #Python
Python数据分析之pandas函数详解
Apr 21 #Python
python基础之停用词过滤详解
Apr 21 #Python
python 模拟在天空中放风筝的示例代码
如何使用Python对NetCDF数据做空间相关分析
python实现简单倒计时功能
python Polars库的使用简介
You might like
yii框架表单模型使用及以数组形式提交表单数据示例
2014/04/30 PHP
thinkphp如何获取客户端IP
2015/11/03 PHP
Thinkphp实现短信验证注册功能
2016/10/18 PHP
php常用字符串String函数实例总结【转换,替换,计算,截取,加密】
2016/12/07 PHP
php中preg_replace正则替换用法分析【一次替换多个值】
2017/01/17 PHP
PHP中的self关键字详解
2019/06/23 PHP
js异步加载的三种解决方案
2013/03/04 Javascript
JS实现可改变列宽的table实例
2013/07/02 Javascript
js 判断计算字符串长度/判断空的简单方法
2013/08/05 Javascript
javascript禁用键盘功能键让右击及其他键无效
2013/10/09 Javascript
node.js中的url.resolve方法使用说明
2014/12/10 Javascript
jQuery选择器源码解读(二):select方法
2015/03/31 Javascript
IE下JS保存图片的简单实例
2016/07/15 Javascript
Express之get,pos请求参数的获取
2017/05/02 Javascript
js 判断一个数字是不是2的n次方幂的实例
2017/11/26 Javascript
vue router导航守卫(router.beforeEach())的使用详解
2019/04/19 Javascript
Python解析命令行读取参数--argparse模块使用方法
2018/01/23 Python
python3 破解 geetest(极验)的滑块验证码功能
2018/02/24 Python
python3实现逐字输出的方法
2019/01/23 Python
python射线法判断检测点是否位于区域外接矩形内
2019/06/28 Python
python sklearn库实现简单逻辑回归的实例代码
2019/07/01 Python
python爬虫 urllib模块反爬虫机制UA详解
2019/08/20 Python
Python Django模板之模板过滤器与自定义模板过滤器示例
2019/10/18 Python
使用matplotlib绘制图例标签中带有公式的图
2019/12/13 Python
TensorFlow tf.nn.softmax_cross_entropy_with_logits的用法
2020/04/19 Python
世界上最大的艺术和工艺用品商店:MisterArt.com
2018/07/13 全球购物
南非最大的在线时尚商店:Zando
2019/07/21 全球购物
Liu Jo西班牙官网:意大利服装品牌
2019/09/11 全球购物
学生处主任岗位职责
2013/12/01 职场文书
成功经营餐厅的创业计划书范文
2013/12/26 职场文书
创先争优个人总结
2015/03/04 职场文书
《自然之道》读后感3篇
2019/12/17 职场文书
写一个Python脚本自动爬取Bilibili小视频
2021/04/24 Python
我收到了德劲DE1107
2022/04/05 无线电
SQL Server数据库查询出现阻塞之性能调优
2022/04/10 SQL Server
Win11任务栏无法正常显示 资源管理器不停重启的解决方法
2022/07/07 数码科技