python tkinter實(shí)現(xiàn)定時(shí)關(guān)機(jī)
本文實(shí)例為大家分享了python tkinter實(shí)現(xiàn)定時(shí)關(guān)機(jī)的具體代碼,供大家參考,具體內(nèi)容如下
很早以前寫(xiě)的,懶得修改,代碼很簡(jiǎn)單,適合初學(xué)者
運(yùn)行效果圖如下:
import os,time# import multiprocessingimport threadingfrom tkinter import *from tkinter import ttkimport tkinter.messagebox as message_boxwindow =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í)行自動(dòng)關(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í)間的秒數(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’)# 定義三個(gè)容器,方便布局root = ttk.LabelFrame(window, text='定時(shí)關(guān)機(jī)')root.grid(column=0, row=0,padx=2, pady=2)root1 = ttk.LabelFrame(window, text='常用時(shí)間')root1.grid(column=1, row=0,padx=2, pady=2)root2 = ttk.LabelFrame(window, text='開(kāi)始')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 = ’開(kāi)始’,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目錄下找到
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持好吧啦網(wǎng)。
相關(guān)文章:
1. Intellij IDEA 2019 最新亂碼問(wèn)題及解決必殺技(必看篇)2. 利用django創(chuàng)建一個(gè)簡(jiǎn)易的博客網(wǎng)站的示例3. PHP5.0正式發(fā)布 不完全兼容PHP4 新增多項(xiàng)功能4. JS+css3實(shí)現(xiàn)幻燈片輪播圖5. ASP.NET MVC獲取多級(jí)類(lèi)別組合下的產(chǎn)品6. 未來(lái)的J2EE主流應(yīng)用框架:對(duì)比Spring和EJB37. Android自定義View實(shí)現(xiàn)掃描效果8. 《javascript設(shè)計(jì)模式》學(xué)習(xí)筆記三:Javascript面向?qū)ο蟪绦蛟O(shè)計(jì)單例模式原理與實(shí)現(xiàn)方法分析9. JS繪圖Flot如何實(shí)現(xiàn)動(dòng)態(tài)可刷新曲線圖10. 關(guān)于HTML5的img標(biāo)簽
