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 os模块中的isfile()和isdir()函数均返回false问题解决方法
Feb 04 Python
Python编程中对文件和存储器的读写示例
Jan 25 Python
Python基于正则表达式实现检查文件内容的方法【文件检索】
Aug 30 Python
Python 读取指定文件夹下的所有图像方法
Apr 27 Python
python 文件查找及内容匹配方法
Oct 25 Python
15行Python代码实现网易云热门歌单实例教程
Mar 10 Python
在Python中过滤Windows文件名中的非法字符方法
Jun 10 Python
pytorch中的embedding词向量的使用方法
Aug 18 Python
python计算导数并绘图的实例
Feb 29 Python
python中关于数据类型的学习笔记
Jul 19 Python
python判断变量是否为列表的方法
Sep 17 Python
浅谈matplotlib默认字体设置探索
Feb 03 Python
Python爬虫之爬取某文库文档数据
Apr 21 #Python
Python数据分析之pandas函数详解
Apr 21 #Python
python基础之停用词过滤详解
Apr 21 #Python
python 模拟在天空中放风筝的示例代码
如何使用Python对NetCDF数据做空间相关分析
python实现简单倒计时功能
python Polars库的使用简介
You might like
PHP添加MySQL数据记录代码
2008/06/07 PHP
异步加载技术实现当滚动条到最底部的瀑布流效果
2014/09/16 PHP
Yii中使用PHPExcel导出Excel的方法
2014/12/26 PHP
从ThinkPHP3.2.3过渡到ThinkPHP5.0学习笔记图文详解
2019/04/03 PHP
如何让您的中波更粗更长 - 中波框形天线制作
2021/03/10 无线电
JQuery 插件制作实践 xMarquee插件V1.0
2010/04/02 Javascript
js用Date对象的setDate()函数对日期进行加减操作
2014/09/18 Javascript
JavaScript获取图片真实大小代码实例
2014/09/24 Javascript
Lua表达式和控制结构学习笔记
2014/12/15 Javascript
javacript使用break内层跳出外层循环分析
2015/01/12 Javascript
js如何实现点击标签文字,文字在文本框出现
2015/08/05 Javascript
javascript实现仿百度图片的瀑布流加载效果
2016/04/20 Javascript
JS实现title标题栏文字不间断滚动显示效果
2016/09/07 Javascript
jQuery代码优化方法总结
2018/01/29 jQuery
解决vue使用vant下拉框van-dropdown-item 绑定title值不变问题
2020/08/05 Javascript
python批量下载图片的三种方法
2013/04/22 Python
将Emacs打造成强大的Python代码编辑工具
2015/11/20 Python
Python的语言类型(详解)
2017/06/24 Python
Python判断文件和字符串编码类型的实例
2017/12/21 Python
python3个性签名设计实现代码
2018/06/19 Python
Python实现微信自动好友验证,自动回复,发送群聊链接方法
2019/02/21 Python
Pycharm IDE的安装和使用教程详解
2020/04/30 Python
Softmax函数原理及Python实现过程解析
2020/05/22 Python
TensorFlow2.0使用keras训练模型的实现
2021/02/20 Python
HTML5实现应用程序缓存(Application Cache)
2020/06/16 HTML / CSS
意大利香水和彩妆护肤品购物网站:Ditano
2017/08/13 全球购物
家长给老师的道歉信
2014/01/13 职场文书
大专会计自我鉴定
2014/02/06 职场文书
《雨霖铃》教学反思
2014/02/22 职场文书
制药工程专业职业生涯规划范文
2014/03/10 职场文书
学生抄袭作业的检讨书
2014/10/02 职场文书
先进党支部申报材料
2014/12/24 职场文书
会计入职心得体会
2016/01/22 职场文书
高中语文教材(文学文化常识大全一)
2019/08/13 职场文书
Python中threading库实现线程锁与释放锁
2021/05/17 Python
Python list列表删除元素的4种方法
2021/11/01 Python