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爬虫之HTTP异常处理
Nov 05 Python
Python3按一定数据位数格式处理bin文件的方法
Jan 24 Python
Python如何应用cx_Oracle获取oracle中的clob字段问题
Aug 27 Python
Python 在OpenCV里实现仿射变换—坐标变换效果
Aug 30 Python
python BlockingScheduler定时任务及其他方式的实现
Sep 19 Python
PYQT5开启多个线程和窗口,多线程与多窗口的交互实例
Dec 13 Python
Python 实现向word(docx)中输出
Feb 13 Python
Python实现ElGamal加密算法的示例代码
Jun 19 Python
Python基础教程(一)——Windows搭建开发Python开发环境
Jul 20 Python
python时间time模块处理大全
Oct 25 Python
python爬虫scrapy框架的梨视频案例解析
Feb 20 Python
python 定义函数 返回值只取其中一个的实现
May 21 Python
Python爬虫之爬取某文库文档数据
Apr 21 #Python
Python数据分析之pandas函数详解
Apr 21 #Python
python基础之停用词过滤详解
Apr 21 #Python
python 模拟在天空中放风筝的示例代码
如何使用Python对NetCDF数据做空间相关分析
python实现简单倒计时功能
python Polars库的使用简介
You might like
Yii框架页面渲染操作实例详解
2019/07/19 PHP
PHP标准库 (SPL)――Countable用法示例
2020/06/05 PHP
firefox下jQuery UI Autocomplete 1.8.*中文输入修正方法
2012/09/19 Javascript
checkbox使用示例
2013/08/23 Javascript
node.js中的emitter.on方法使用说明
2014/12/10 Javascript
js实现鼠标经过时图片滚动停止的方法
2015/02/16 Javascript
JS实现窗口加载时模拟鼠标移动的方法
2015/06/03 Javascript
js模拟淘宝网的多级选择菜单实现方法
2015/08/18 Javascript
基于JS代码实现实时显示系统时间
2016/06/16 Javascript
浅谈javascript中的三种弹窗
2016/10/21 Javascript
JS中split()用法(将字符串按指定符号分割成数组)
2016/10/24 Javascript
js实现简单的选项卡效果
2017/02/23 Javascript
javascript九宫格图片随机打乱位置的实现方法
2017/03/15 Javascript
mpvue微信小程序的接口请求fly全局拦截代码实例
2019/11/13 Javascript
小程序开发之模态框组件封装
2020/04/23 Javascript
vue3.0生命周期的示例代码
2020/09/24 Javascript
js+h5 canvas实现图片验证码
2020/10/11 Javascript
[01:43]深扒TI7聊天轮盘语音出处4
2017/05/11 DOTA
python如何通过protobuf实现rpc
2016/03/06 Python
Python 基础教程之闭包的使用方法
2017/09/29 Python
python 删除指定时间间隔之前的文件实例
2018/04/24 Python
解决python3读取Python2存储的pickle文件问题
2018/10/25 Python
python读取指定字节长度的文本方法
2019/08/27 Python
基于python3抓取pinpoint应用信息入库
2020/01/08 Python
我们是伦敦女孩:WalG
2018/01/08 全球购物
函数指针的定义是什么
2016/08/14 面试题
电大自我鉴定
2013/10/27 职场文书
个人求职信范文分享
2013/12/13 职场文书
函授毕业自我鉴定
2013/12/19 职场文书
煤矿班组长岗位职责
2013/12/29 职场文书
小学生我的梦想演讲稿
2014/08/21 职场文书
无犯罪记录证明范本
2014/09/15 职场文书
国庆横幅标语
2014/10/08 职场文书
幼儿园教学工作总结2015
2015/05/12 职场文书
2015年社区工会工作总结
2015/05/26 职场文书
竞聘开场白方式有哪些?
2019/08/28 职场文书