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正则表达式 re模块使用说明
May 19 Python
python使用mysqldb连接数据库操作方法示例详解
Dec 03 Python
Python xlrd读取excel日期类型的2种方法
Apr 28 Python
Python使用设计模式中的责任链模式与迭代器模式的示例
Mar 02 Python
windows下ipython的安装与使用详解
Oct 20 Python
django 微信网页授权登陆的实现
Jul 30 Python
python 利用turtle模块画出没有角的方格
Nov 23 Python
Python实现发票自动校核微信机器人的方法
May 22 Python
python 制作python包,封装成可用模块教程
Jul 13 Python
通俗易懂了解Python装饰器原理
Sep 17 Python
python3中数组逆序输出方法
Dec 01 Python
python3 kubernetes api的使用示例
Jan 12 Python
Python爬虫之爬取某文库文档数据
Apr 21 #Python
Python数据分析之pandas函数详解
Apr 21 #Python
python基础之停用词过滤详解
Apr 21 #Python
python 模拟在天空中放风筝的示例代码
如何使用Python对NetCDF数据做空间相关分析
python实现简单倒计时功能
python Polars库的使用简介
You might like
实时抓取YAHOO股票报价的代码
2006/10/09 PHP
让你的PHP同时支持GIF、png、JPEG
2006/10/09 PHP
php adodb介绍
2009/03/19 PHP
ThinkPHP使用UTFWry地址库进行IP定位实例
2014/04/01 PHP
php中 $$str 中 &quot;$$&quot; 的详解
2015/07/06 PHP
PHP开发Apache服务器配置
2015/07/15 PHP
PHP查看当前变量类型的方法
2015/07/31 PHP
Javascript仿新浪游戏频道鼠标悬停显示子菜单效果
2015/08/21 Javascript
基于VUE选择上传图片并页面显示(图片可删除)
2017/05/25 Javascript
Angular中ng-options下拉数据默认值的设定方法
2017/06/21 Javascript
使用jQuery实现两个div中按钮互换位置的实例代码
2017/09/21 jQuery
webpack+react+antd脚手架优化的方法
2018/04/02 Javascript
通过 JS 判断页面是否有滚动条的实现方法
2018/04/05 Javascript
angularJS开发注意事项
2018/05/26 Javascript
支付宝小程序自定义弹窗dialog插件的实现代码
2018/11/30 Javascript
vue 解决provide和inject响应的问题
2020/11/12 Javascript
[01:07:11]Secret vs Newbee 2019国际邀请赛小组赛 BO2 第二场 8.15
2019/08/17 DOTA
python使用rsa加密算法模块模拟新浪微博登录
2014/01/22 Python
老生常谈Python进阶之装饰器
2017/05/11 Python
Python基于pycrypto实现的AES加密和解密算法示例
2018/04/10 Python
python实现textrank关键词提取
2018/06/22 Python
使用python将图片按标签分入不同文件夹的方法
2018/12/08 Python
Python谱减法语音降噪实例
2019/12/18 Python
Python安装OpenCV的示例代码
2020/03/05 Python
Python基于gevent实现高并发代码实例
2020/05/15 Python
python中numpy.empty()函数实例讲解
2021/02/05 Python
使用简单的CSS3属性实现炫酷读者墙效果
2014/01/08 HTML / CSS
美体小铺加拿大官方网站:The Body Shop加拿大
2016/10/30 全球购物
有趣的流行文化T恤、马克杯、手机壳和更多:Look Human
2019/01/07 全球购物
Zavvi西班牙:电子游戏、极客服装、Blu-ray、Funko Pop等
2019/05/03 全球购物
意大利奢侈品多品牌集合店:TheDoubleF
2019/08/24 全球购物
资产评估专业大学生求职信
2013/09/29 职场文书
县政府办公室领导班子对照检查材料思想汇报
2014/09/28 职场文书
2016年优秀共产党员先进事迹材料
2016/02/29 职场文书
Node实现搜索框进行模糊查询
2021/06/28 Javascript
Win11查看设备管理器
2022/04/19 数码科技