python tkinter實(shí)現(xiàn)定時關(guān)機(jī)
本文實(shí)例為大家分享了python tkinter實(shí)現(xiàn)定時關(guān)機(jī)的具體代碼,供大家參考,具體內(nèi)容如下
很早以前寫的,懶得修改,代碼很簡單,適合初學(xué)者
運(yùn)行效果圖如下:

使用注意
- 設(shè)定時間后點(diǎn)擊開始即可實(shí)現(xiàn)定時關(guān)機(jī),同時窗口也會關(guān)閉
- 想要取消關(guān)機(jī)的話,再次打開,點(diǎn)取消即可
代碼如下
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()
# 設(shè)置func為守護(hù)線程
def funcs():
t = threading.Thread(target=func)
t.setDaemon(True)
t.start()
# 執(zhí)行自動關(guān)機(jī)指令
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())
# 算出距離關(guān)機(jī)時間的秒數(shù)
count_down_second=-int(h2)*3600-int(m2)*60-int(s2)+int(var.get())*3600+int(var1.get())*60+int(var2.get())
# 如果關(guān)機(jī)設(shè)置在第二天,結(jié)果加86400(一天的總秒數(shù))
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()
# 快捷關(guān)機(jī)選項(xiàng)入口
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="定時關(guān)機(jī)")
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()
項(xiàng)目的github地址
ps:已打包為exe格式,可在dist目錄下找到
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
python 實(shí)現(xiàn)矩陣上下/左右翻轉(zhuǎn),轉(zhuǎn)置的示例
今天小編就為大家分享一篇python 實(shí)現(xiàn)矩陣上下/左右翻轉(zhuǎn),轉(zhuǎn)置的示例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-01-01
PyCharm進(jìn)行Django項(xiàng)目開發(fā)環(huán)境搭建
本文主要介紹了PyCharm進(jìn)行Django項(xiàng)目開發(fā)環(huán)境搭建,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2025-02-02
Python實(shí)現(xiàn)字典排序、按照list中字典的某個key排序的方法示例
這篇文章主要介紹了Python實(shí)現(xiàn)字典排序、按照list中字典的某個key排序的方法,涉及Python字典與列表排序相關(guān)操作技巧,需要的朋友可以參考下2018-12-12
python多線程案例之多任務(wù)copy文件完整實(shí)例
這篇文章主要介紹了python多線程案例之多任務(wù)copy文件,結(jié)合完整實(shí)例形式分析了Python使用multiprocessing模塊實(shí)現(xiàn)基于多線程的文件拷貝相關(guān)操作技巧,需要的朋友可以參考下2019-10-10
Python深度學(xué)習(xí)之FastText實(shí)現(xiàn)文本分類詳解
FastText是一種典型的深度學(xué)習(xí)詞向量的表示方法,它非常簡單通過Embedding層將單詞映射到稠密空間,然后將句子中所有的單詞在Embedding空間中進(jìn)行平均,進(jìn)而完成分類操作2022-09-09
flask框架實(shí)現(xiàn)修改密碼和免密登錄功能
flask是python web開發(fā)的常用框架之一。本文將講述flask如何實(shí)現(xiàn)修改密碼和免密登錄功能2021-05-05

