用Python写一个自动关机程序,并打包成exe可执行程序

时间:2021-12-15 05:14:18

用Python写一个自动关机程序,并打包成exe可执行程序

1、实现效果

用Python写一个自动关机程序,并打包成exe可执行程序

2、实现步骤

模块导入

  1. import os,sys,time  
  2. from PyQt5 import QtCore,QtWidgets,QtGui 

窗口设置

  1. def pageShow(self,page): 
  2.   #设置窗口的位置和大小 
  3.   page.setGeometry(400,400,400,200) 
  4.   #设置窗口的标题 
  5.   page.setWindowTitle('Window shutdown'
  6.   #设置窗口的图标 
  7.   #page.setWindowIcon(QtGui.QIcon('#ddffgg')) 
  8.   #设置工具中提示的字体样式 
  9.   QtWidgets.QToolTip.setFont(QtGui.QFont('SansSerif',10)) 
  10.   #创建一个提示 
  11.   page.setToolTip('这是Window关机工具'

创建一个文本标签

  1. self.label = QtWidgets.QLabel(page)  
  2. self.label.setGeometry(QtCore.QRect(60, 20, 120, 45)) 
  3. self.label.setFont(QtGui.QFont("Roman times",10,QtGui.QFont.Bold)) 

创建一个文本标签和时间栏框

  1. self.label2 = QtWidgets.QLabel(page)  
  2. self.label2.setGeometry(QtCore.QRect(100, 55, 40, 51)) 

设置该文件的字体样式,大小。

  1. self.label2.setFont(QtGui.QFont("Roman times",10,QtGui.QFont.Bold)) 

创建一个日期时间文本框,QDateEdit表示添加日期文本框,QTimeEdit表示添加时间文本框。

  1. self.time = QtWidgets.QDateTimeEdit(page) 

设置日期时间框的位置大小依次是

  1. self.time.setGeometry(QtCore.QRect(140, 70, 180, 25))  
  2. self.time.setDisplayFormat("yyyy-MM-dd HH:mm:ss"

设置日期可以使用日历插件

  1. self.time.setCalendarPopup(True

根据PyQt方法获取系统的当前时间

  1. now = QtCore.QDateTime.currentDateTime()  
  2. now_time = now.toString(QtCore.Qt.ISODate) 

将当前系统时间赋值给时间框中

  1. now_time = time.strftime("%Y-%m-%d %H:%M:%S",time.localtime())  
  2. self.time.setDateTime(QtCore.QDateTime.fromString(now_time, 'yyyy-MM-dd hh:mm:ss')) 

一个按钮并设置添加单击事件

  1. self.btn = QtWidgets.QPushButton(page,clicked=self.shut) 
  2. #self.btn.clicked.connect(self.shut(page)) 
  3. self.btn.setToolTip('这里是提交按钮'

显示默认尺寸

  1. #self.btn.resize(btn.sizeHint()) 
  2. self.btn.move(110,110) 

创建一个按钮并设置清除关机任务单击事件

  1. self.btn1 = QtWidgets.QPushButton(page,clicked=self.cleart) 
  2. #self.btn.clicked.connect(self.shut()) 
  3. self.btn1.setToolTip('这里是清除任务按钮'

显示默认尺寸

  1. self.btn1.move(210,110) 

设置一个文本提示框

  1. self.text = QtWidgets.QLabel(page) 
  2. self.text.setGeometry(QtCore.QRect(25, 150, 350, 25)) 
  3. self.text.setFont(QtGui.QFont("Roman times",14,QtGui.QFont.Bold)) 
  4.  
  5. self.setUI(page) 
  6. page.show() 

设置工具窗口中显示的部件文本信息

  1. def setUI(self,page): 
  2.   _translate = QtCore.QCoreApplication.translate  
  3.  
  4.   self.label.setText(_translate("page","请输入关机时间")) 
  5.   self.label2.setText(_translate("page","日期:")) 
  6.   self.btn.setText(_translate("page","提交")) 
  7.   self.btn1.setText(_translate("page","清除")) 
  8.   self.text.setText(_translate("page","请设置关机时间!")) 

添加关机计划

  1. def shut(self,page): 
  2.   datetime = self.time.text() 
  3.   t1 = time.strptime(datetime,"%Y-%m-%d %H:%M:%S"
  4.   t = int(time.mktime(t1)) 
  5.   nq = int(time.time()) 
  6.   d = t-nq 
  7.   #print(d) 
  8.   #exit() 
  9.   if d>0: 
  10.     try: 
  11.       os.system('shutdown -s -t %d' % d) 
  12.       self.text.setText("电脑将在%s关机!" % datetime) 
  13.       #self.time.setDateTime('1'
  14.     except
  15.       self.text.setText("设置失败!"
  16.   else
  17.     self.text.setText("日期设置错误!"

清除关机计划

  1. def cleart(self,page): 
  2.   try: 
  3.     os.system('shutdown -a'
  4.     self.text.setText("已经清除关机任务!"
  5.   except
  6.     self.text.setText("清除任务失败!")   
  7.  
  8. if __name__=='__main__'

创建应用程序和对象

  1. app = QtWidgets.QApplication(sys.argv) 
  2. page = QtWidgets.QWidget() 
  3. ui = guanji() 
  4. ui.pageShow(page) 
  5. sys.exit(app.exec_()) 

3、全部代码

  1. import os,sys,time 
  2. from PyQt5 import QtCore,QtWidgets,QtGui 
  3.  
  4. class guanji(object): 
  5.  
  6.   def pageShow(self,page): 
  7.     #设置窗口的位置和大小 
  8.     page.setGeometry(400,400,400,200) 
  9.     #设置窗口的标题 
  10.     page.setWindowTitle('Window shutdown'
  11.     #设置窗口的图标 
  12.     #page.setWindowIcon(QtGui.QIcon('#ddffgg')) 
  13.     #设置工具中提示的字体样式 
  14.     QtWidgets.QToolTip.setFont(QtGui.QFont('SansSerif',10)) 
  15.     #创建一个提示 
  16.     page.setToolTip('这是Window关机工具'
  17.  
  18.     self.label = QtWidgets.QLabel(page) 
  19.     self.label.setGeometry(QtCore.QRect(60, 20, 120, 45)) 
  20.     self.label.setFont(QtGui.QFont("Roman times",10,QtGui.QFont.Bold)) 
  21.     self.label2 = QtWidgets.QLabel(page) 
  22.     self.label2.setGeometry(QtCore.QRect(100, 55, 40, 51)) 
  23.     self.label2.setFont(QtGui.QFont("Roman times",10,QtGui.QFont.Bold)) 
  24.     self.time = QtWidgets.QDateTimeEdit(page) 
  25.     self.time.setGeometry(QtCore.QRect(140, 70, 180, 25)) 
  26.     self.time.setDisplayFormat("yyyy-MM-dd HH:mm:ss"
  27.     self.time.setCalendarPopup(True
  28.     now_time = time.strftime("%Y-%m-%d %H:%M:%S",time.localtime()) 
  29.     self.time.setDateTime(QtCore.QDateTime.fromString(now_time, 'yyyy-MM-dd hh:mm:ss')) 
  30.  
  31.     self.btn = QtWidgets.QPushButton(page,clicked=self.shut) 
  32.     self.btn.setToolTip('这里是提交按钮'
  33.     self.btn.move(110,110) 
  34.  
  35.     self.btn1 = QtWidgets.QPushButton(page,clicked=self.cleart) 
  36.     self.btn1.setToolTip('这里是清除任务按钮'
  37.     self.btn1.move(210,110) 
  38.     self.text = QtWidgets.QLabel(page) 
  39.     self.text.setGeometry(QtCore.QRect(25, 150, 350, 25)) 
  40.     self.text.setFont(QtGui.QFont("Roman times",14,QtGui.QFont.Bold)) 
  41.  
  42.     self.setUI(page) 
  43.     page.show() 
  44.   def setUI(self,page): 
  45.     _translate = QtCore.QCoreApplication.translate  
  46.  
  47.     self.label.setText(_translate("page","请输入关机时间")) 
  48.     self.label2.setText(_translate("page","日期:")) 
  49.     self.btn.setText(_translate("page","提交")) 
  50.     self.btn1.setText(_translate("page","清除")) 
  51.     self.text.setText(_translate("page","请设置关机时间!")) 
  52.  
  53.   def shut(self,page): 
  54.     datetime = self.time.text() 
  55.     t1 = time.strptime(datetime,"%Y-%m-%d %H:%M:%S"
  56.     t = int(time.mktime(t1)) 
  57.     nq = int(time.time()) 
  58.     d = t-nq 
  59.     if d>0: 
  60.       try: 
  61.         os.system('shutdown -s -t %d' % d) 
  62.         self.text.setText("电脑将在%s关机!" % datetime) 
  63.       except
  64.         self.text.setText("设置失败!"
  65.     else
  66.       self.text.setText("日期设置错误!"
  67.  
  68.   def cleart(self,page): 
  69.     try: 
  70.       os.system('shutdown -a'
  71.       self.text.setText("已经清除关机任务!"
  72.     except
  73.       self.text.setText("清除任务失败!")   
  74.  
  75. if __name__=='__main__'
  76.   app = QtWidgets.QApplication(sys.argv) 
  77.   page = QtWidgets.QWidget() 
  78.   ui = guanji() 
  79.   ui.pageShow(page) 
  80.   sys.exit(app.exec_())