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 相关文章推荐
关于numpy中np.nonzero()函数用法的详解
Feb 07 Python
CentOS 7下安装Python 3.5并与Python2.7兼容并存详解
Jul 07 Python
Python调用系统底层API播放wav文件的方法
Aug 11 Python
pandas系列之DataFrame 行列数据筛选实例
Apr 12 Python
Numpy中矩阵matrix读取一列的方法及数组和矩阵的相互转换实例
Jul 02 Python
判断python对象是否可调用的三种方式及其区别详解
Jan 31 Python
python将excel转换为csv的代码方法总结
Jul 03 Python
Python实现一个数组除以一个数的例子
Jul 20 Python
python模块常用用法实例详解
Oct 17 Python
python 利用turtle库绘制笑脸和哭脸的例子
Nov 23 Python
Python 实现一个计时器
Jul 28 Python
Python 数据可视化之Matplotlib详解
Nov 02 Python
Python爬虫之爬取某文库文档数据
Apr 21 #Python
Python数据分析之pandas函数详解
Apr 21 #Python
python基础之停用词过滤详解
Apr 21 #Python
python 模拟在天空中放风筝的示例代码
如何使用Python对NetCDF数据做空间相关分析
python实现简单倒计时功能
python Polars库的使用简介
You might like
php中chdir()函数用法实例
2014/11/13 PHP
laravel-admin 后台表格筛选设置默认的查询日期方法
2019/10/03 PHP
CSS3画一个阴阳八卦图
2021/03/09 HTML / CSS
javascript 模式设计之工厂模式学习心得
2010/04/27 Javascript
JS弹出对话框返回值代码(asp.net后台)
2010/12/28 Javascript
JS弹出窗口代码大全(详细整理)
2012/12/21 Javascript
jquery预览图片实现鼠标放上去显示实际大小
2014/01/16 Javascript
将数字转换成大写的人民币表达式的js函数
2014/09/21 Javascript
了不起的node.js读书笔记之例程分析
2014/12/22 Javascript
jQuery插件slicebox实现3D动画图片轮播切换特效
2015/04/12 Javascript
JavaScript 封装一个tab效果源码分享
2015/09/15 Javascript
js添加事件的通用方法推荐
2016/05/15 Javascript
Javascript删除指定元素节点的方法
2016/06/21 Javascript
js简单实现网页换肤功能
2017/04/07 Javascript
使用pm2自动化部署node项目的方法步骤
2019/01/28 Javascript
JS实现获取数组中最大值或最小值功能示例
2019/03/02 Javascript
vue源码中的检测方法的实现
2019/09/26 Javascript
解决vue页面渲染但dom没渲染的操作
2020/07/27 Javascript
element中Steps步骤条和Tabs标签页关联的解决
2020/12/08 Javascript
[04:44]DOTA2西游记战队视频彩蛋流出 师徒开黑巧遇林书豪
2016/08/03 DOTA
Python深入学习之闭包
2014/08/31 Python
Python的Urllib库的基本使用教程
2015/04/30 Python
python flask实现分页的示例代码
2018/08/02 Python
Python3使用Matplotlib 绘制精美的数学函数图形
2019/04/11 Python
django框架防止XSS注入的方法分析
2019/06/21 Python
英国最好的包装供应商:Priory Direct
2019/12/17 全球购物
毕业生求职推荐信
2013/11/04 职场文书
《云房子》教学反思
2014/04/20 职场文书
工作时间擅自离岗检讨书
2014/10/24 职场文书
《改造我们的学习》心得体会
2014/11/07 职场文书
2014年招生工作总结
2014/11/26 职场文书
餐饮食品安全责任书
2015/01/29 职场文书
2015年七一建党节活动总结
2015/03/20 职场文书
慈善募捐倡议书
2015/04/27 职场文书
如何写好闭幕词
2019/04/02 职场文书
详解Python常用的魔法方法
2021/06/03 Python