《python编程实践——关机助手.docx》由会员分享,可在线阅读,更多相关《python编程实践——关机助手.docx(7页珍藏版)》请在第一文库网上搜索。
1、Python编程实践一一关机助手工具及编程环境1. Python 3.10.22. VisuaIStudio Code.python界面编程视窗工具-thinker库Tkinter模块(Tk接口。是Python的标准TkGUl工具包的接口使用方法 import thinker一些简单工具简单界面的编程使用thinker绰绰有余三.关机助手界面这一个实践我们不需要使用其他任何第三方库,完全使用python自带的工具,编写一个视 窗化的关机助手。关机助手的模样:大家可以根据自己的喜好去编写视窗,编写功能函数。Ie)计时器一X关机倒计时 当前时间:16:33:12 剩余时间:03:59:56 取消设
2、置返回设置设置四个小时,电脑自动关机四.程序源代码这里涉及一个比较重要的基本编程:多界面切换,功能函数 下面的是完全的代码大家可以将他拆分成几个模块,来实现。1.一个简单的界面2.两个界面切换3.功能函数编写#关机助手from tkinter import *import tkinterimport osimport timefrom tkinter import messageboxdefforml。:#第1个窗体:登录窗体def f unbotton 1():try:try:hour=abs(int(shutdownhour.get().strip()try:minute =abs(int
3、(shutdownminute.get().strip()shutdowntime=3600*hour+60*minute#os.systemf shutdown -s -t %s, %shutdowntime) rootl.destroy!) #关闭登录窗体form2(houryminute) #进入第2个窗体:主窗体 except:minute=Oshutdowntime=3600*hour+60*minute#os.system(shutdown -s -t %s %shutdowntime) rootl.destroy() #关闭登录窗体form2(hourzminute) #进入第2
4、个窗体:主窗体except:hour=0minute =abs(int(shutdownminute.get().strip()shutdowntime=3600*hour+60*minute#os.system(shutdown -s -t %s %shutdowntime) rootl.destroy() #关闭登录窗体form2(hour,minute) #进入第2个窗体:主窗体except VaIueError:messagebox.showwarning(警告:,设置错误!) returndef funbutto3():try:shutdowntime=3600*los.system
5、(shutdown -s -t %s %shutdowntime)hour=lminute =Orootl.destroy() #关闭登录窗体form2(houGminute) ft进入第2个窗体:主窗体except VaIueError:messagebox.showwarning(警告:,设置错误!)def funbutto4():try:shutdowntime=3600*2os.system(shutdown -s -t %s %shutdowntime)hour=2minute =Orootl.destroy!) #关闭登录窗体form2(houGminute) ft进入第2个窗体:
6、主窗体except VaIueError:messagebox.showwarning(警告:,设置错误!)def funbutto5():try:shutdowntime=3600*3os.system(shutdown -s -t %s %shutdowntime)hour=3minute =Orootl.destroy!) #关闭登录窗体form2(houGminute) ft进入第2个窗体:主窗体except VaIueError:messagebox.showwarning(警告:,设置错误!)def funbutton6():try:shutdowntime=3600*4os.sy
7、stem(,shutdown -s -t %s %shutdowntime)hour=4minute =0rootl.destroy() #关闭登录窗体form2(hourzminute) #进入第2个窗体:主窗体except VaIueError:messageboxshowwarning(警告设置错误!”)rootl=tkinter.Tk()rootl.title(,关机助手rootl.resizable(width=Falsezheight=False) # 禁止改变窗 口大小rootl.minsize(350z180)# rootl.iconbitmap(os.path.join(im
8、g,shutdownhelper.ico)rootl.configure(bg=,SteelBlue)shutdownhour=tkinter.StringVar()shutdownminute=tkinter.StringVar()Iabell = tkinter.Label(rootl,text=设置关机时间丁)Iabell.place(x=20z y=30z width=80, height=30)entryl=tkinter.Entry(rootl,tetvariable=shutdownhour)entrylPace(x=120z y=30, width=40, height=30)
9、Iabel2= tkinter.Label(rootl,text=,小时)label2.place(x=170, y=30, width=40, height=30)entry2=tkinter.Entry(rootl,tetvariable=shutdownminute)entry2.place(x=220z y=30, width=40, height=30)Iabel3 = tkinter.Label(rootlztet=,I,)label3.place(x=270, y=30, width=40, height=30)Iabel4= tkinter.Label(rootl,text=常
10、用时 I词:,anchor= W)label4.place(x=20z y=90z width=80, height=30)button3= tkinter.Button(rootlztt=l 小时,command=funbutton3)butto3.place(x=120, y=90z width=40z height=30)button4= tkinter.Button(rootlztet=,2 小时,command=funbutton4)button4.place(x=170, y=90, width=40z height=30)buttons= tkinter.Button(rootl
11、ztt=,3 小时,command=funbutton5)butto5.place(x=220z y=90, Width=40, height=30)button6= tkinter.Button(rootlztet=,4 小时,command=funbutton6)button6.place(x=270, y=90, width=40z height=30)buttonl=tkinter.Button(rootlztt=确定zcommand=funbottonl) # 确定关机时间进入 倒计时buttonl.place(x=110, y=150, Width=50, height=30)bu
12、tton2=tkinter.Button(rootlztet=退出zcommand=rootl.destroy) # 关闭登录窗体butto2.place(x=200, y=150, width=50, height=30)rootl.mainloop() # 一直在等待接受窗体1事件,不会进入第2个窗体def form2(houcminute): # 第 2 个窗体:主窗体def funbotto7():os.system(,shutdown -a)#root2.destroy() # 关闭窗口def funbotto8():root2.destroy() # 关闭窗口forml()# ro
13、ot2.destroy() # 关闭窗口def refresh_cuirent_time():CloCk_time = time.strftime(,%H%Mr%S,)CUiT_time.config(text=clock_time)curr_time.after(1000, refresh_current_time)def refresh_down_time():# 当前时间戳now_time = int(time.time()# 下班时间时分秒数据过滤work_hour_val = int(hour)work_minute_val = int(minute)work_second_val
14、= int(work-second.get()# 下班时间转为时间戳work_date = str(work_hour_val) + str(work_minute_val) +str(work_second_val)work_str_time = time.strftime(%Y-%m-%d ) + work_datetime_array = time.strptime(work_str_time, %Y-%m-%d %H:%M:%S)# 距离下班时间剩余秒数diff-tim = int(time_array.tm_hour*3600+time_array.tm_min*60)while d
15、iff_time -1:#获取倒计时一时分秒down_minute = diff_time / 60down_second = diff_time % 60down_hour = 0if down_minute 60:down_hour = down_minute / 60down_minute = down_minute % 60down_time = str(down_hour).zfill(2) + str(down_minute).zfill(2) +str(down_second).zfill(2)down_label.config(text=down_time)root2.update()time.sleep(l) if diff_time = 0: downjabel.config(text=倒计时结束) breakdiff_t