之前写了一个自动定时关机的软件,这次把它做成图形界面
https://blog.csdn.net/qq_33289175/article/details/87300783
凡是开发软件必须要走:原型--->UI-->开发-->测试,但因为软件是做给自己用的,随便凑合凑合就行了
一、第一步,在网上找一个少好看一点的图片来做UI
二、第二步,软件开发
1、tkinter已经被内置到python安装包中了,所以不用去安装了
2、导入包、创建界面类
import tkinter
win = tkinter.Tk()
win.mainloop()
在运行pycharm里运行,你就可以看到一个界面出来
3、接下来把它玩出花来
I、设置宽高、居中显示
II、设置窗口标题
III、看代码,暂时先实现功能
IV、样式优化,太晚了,下次再调整
import tkinter
import sys,os,time,datetime
import tkinter.messagebox #这个是消息框,对话框的关键
win = tkinter.Tk()
#I、设置宽高
#win.geometry("390x250")
#设置宽高、居中显示
nScreenWid, nScreenHei = win.maxsize()
nCurWid = 390
nCurHeight = 250
win.geometry("{}x{}+{}+{}".format(nCurWid, nCurHeight, int(nScreenWid/2 - nCurWid/2), int(nScreenHei/2 - nCurHeight/2)))
#设置窗口标题
win.title("定时关机小助手")
#获取系统当前时间
Label1=tkinter.Label(text=time.strftime('%Y-%m-%d %H:%M:%S',time.localtime(time.time())))
Label1.pack()
def trickit():
currentTime=time.strftime('%Y-%m-%d %H:%M:%S',time.localtime(time.time()))
Label1.config(text=currentTime)
win.update()
Label1.after(1000, trickit)
Label1.after(1000, trickit)
#输入时间
l1 = tkinter.Label(win, text="请输入小时") # 标签
l1.pack()
inputhour=tkinter.Entry(win,bd='0',width='10')
inputhour.pack()
l2 = tkinter.Label(win, text="请输入分钟") # 标签
l2.pack()
inputminute=tkinter.Entry(win,bd='0',width='10')
inputminute.pack()
def gettime():
hour = int(inputhour.get()) # 获取文本框内容
minute = int(inputminute.get())
print(hour,minute)
'''获取当前时分秒'''
curtime = datetime.datetime.now()
curtime_hour = curtime.hour
curtime_minute = curtime.minute
'''计算秒数,先换算成时再相减'''
hours = ((hour + (minute / 60)) - (curtime_hour + curtime_minute / 60))
minutes = hours * 60
seconds = hours * 60 * 60
print("距离关机还有%d分钟" % minutes)
tkinter.messagebox.showinfo('提示', "距离关机还有%d分钟" % minutes)
os.system('shutdown -s -t %d' % seconds)
tkinter.Button(win,text="确定",command=gettime).pack() #command绑定获取文本框内容方法
def off():
if os.system("shutdown -a") ==1116:
print("因为没有任何进行中的关机过程,所以无法中止系统关机。(1116)")
tkinter.messagebox.showinfo('提示', "您当前没有设置关机任务")
else:
print("取消成功")
tkinter.messagebox.showinfo('提示', "取消成功")
tkinter.Button(win,text="取消关机",command=off).pack() #取消关机
win.mainloop()
tkinter写界面UI太丑了,改成pyqt5做
打包成exe文件
https://mp.csdn.net/postedit/87301625
这时候exe文件运行时会弹出dos,如果不想要,在打包时改成
pyinstaller --noconsole --onefile 定时关机小助手.py
参考文章:
https://www.jianshu.com/p/311749e3b91a
http://www.runoob.com/python/python-gui-tkinter.html