python tkinter實現(xiàn)定時關機
更新時間:2021年04月20日 16:51:57 作者:ColdCurlyFu
這篇文章主要為大家詳細介紹了python tkinter實現(xiàn)定時關機,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
本文實例為大家分享了python tkinter實現(xiàn)定時關機的具體代碼,供大家參考,具體內(nèi)容如下
很早以前寫的,懶得修改,代碼很簡單,適合初學者
運行效果圖如下:
使用注意
- 設定時間后點擊開始即可實現(xià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() # 設置func為守護線程 def funcs(): t = threading.Thread(target=func) t.setDaemon(True) t.start() # 執(zhí)行自動關機指令 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()) # 算出距離關機時間的秒數(shù) count_down_second=-int(h2)*3600-int(m2)*60-int(s2)+int(var.get())*3600+int(var1.get())*60+int(var2.get()) # 如果關機設置在第二天,結(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() # 快捷關機選項入口 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目錄下找到
以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。
相關文章
手把手教你用Python打造互動式中秋節(jié)慶祝小程序
中秋節(jié)將至,本文提供了一個使用Python開發(fā)的中秋節(jié)慶祝小程序教程,通過簡單的步驟,您可以創(chuàng)建一個具有節(jié)日祝福、互動式燈謎游戲和模擬中秋明月動態(tài)背景的小程序,文章詳細介紹了程序的功能、實現(xiàn)步驟以及如何運行程序,需要的朋友可以參考下2024-09-09Django bulk_create()、update()與數(shù)據(jù)庫事務的效率對比分析
這篇文章主要介紹了Django bulk_create()、update()與數(shù)據(jù)庫事務的效率對比分析,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-05-05python Stanza處理NLP任務使用詳解(多語言處理工具)
這篇文章主要為大家介紹了python Stanza處理NLP任務使用詳解,多語言處理工具使用實例探索,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2024-01-01