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 numpy 显示图像阵列的实例
Jul 02 Python
Python异常处理操作实例详解
Aug 28 Python
Python wxPython库消息对话框MessageDialog用法示例
Sep 03 Python
python保存二维数组到txt文件中的方法
Nov 15 Python
python实现狄克斯特拉算法
Jan 17 Python
python DataFrame 取差集实例
Jan 30 Python
PyQT5 QTableView显示绑定数据的实例详解
Jun 25 Python
python读写Excel表格的实例代码(简单实用)
Dec 19 Python
浅谈SciPy中的optimize.minimize实现受限优化问题
Feb 29 Python
如何提高python 中for循环的效率
Apr 15 Python
用Python在Excel里画出蒙娜丽莎的方法示例
Apr 28 Python
python中类与对象之间的关系详解
Dec 16 Python
Python爬虫之爬取某文库文档数据
Apr 21 #Python
Python数据分析之pandas函数详解
Apr 21 #Python
python基础之停用词过滤详解
Apr 21 #Python
python 模拟在天空中放风筝的示例代码
如何使用Python对NetCDF数据做空间相关分析
python实现简单倒计时功能
python Polars库的使用简介
You might like
实例简介PHP的一些高级面向对象编程的特性
2015/11/27 PHP
定义select的边框颜色
2008/04/28 Javascript
页面中iframe相互传值传参
2009/12/13 Javascript
用客户端js实现带省略号的分页
2013/04/27 Javascript
判断输入是否为空,获得输入类型的JS代码
2013/10/30 Javascript
jquery动态增加删除表格行的小例子
2013/11/14 Javascript
js使用onmousemove和onmouseout获取鼠标坐标的方法
2015/03/31 Javascript
jQuery实现伸展与合拢panel的方法
2015/04/30 Javascript
简介JavaScript中的getUTCFullYear()方法的使用
2015/06/10 Javascript
JavaScript中使用Math.PI圆周率属性的方法
2015/06/14 Javascript
html判断当前页面是否在iframe中的实例
2016/11/30 Javascript
JS实现简单的天数计算器完整实例
2017/04/28 Javascript
js时间戳与日期格式之间转换详解
2017/12/11 Javascript
通过实例解析js简易模块加载器
2019/06/17 Javascript
微信小程序下拉框搜索功能的实现方法
2019/07/31 Javascript
微信小程序picker组件两列关联使用方式
2020/10/27 Javascript
vue 使用rules对表单字段进行校验的步骤
2020/12/25 Vue.js
原生JavaScript实现购物车
2021/01/10 Javascript
Python中使用OpenCV库来进行简单的气象学遥感影像计算
2016/02/19 Python
python多进程共享变量
2016/04/06 Python
Python中struct模块对字节流/二进制流的操作教程
2017/01/21 Python
Python3学习urllib的使用方法示例
2017/11/29 Python
python-str,list,set间的转换实例
2018/06/27 Python
Python global全局变量函数详解
2018/09/18 Python
python机器学习包mlxtend的安装和配置详解
2019/08/21 Python
基于Python生成个性二维码过程详解
2020/03/05 Python
python查询MySQL将数据写入Excel
2020/10/29 Python
美国首屈一指的高品质珠宝设计师和零售商:Allurez
2018/01/23 全球购物
俄罗斯美容和健康网上商店:Созвездие Красоты
2019/07/23 全球购物
LN-CC日本:高端男装和女装的奢侈时尚目的地
2019/09/01 全球购物
JSF如何进行表格处理及取值
2012/08/06 面试题
文明风采获奖感言
2014/02/18 职场文书
西式婚礼主持词
2014/03/13 职场文书
环保倡议书格式范文
2014/05/14 职场文书
机关领导干部作风整顿整改措施
2014/09/19 职场文书
python开发制作好看的时钟效果
2022/05/02 Python