原文出处:dearvee

用了一个星期在PythonTip刷了50道题目,熟悉了python基本的语法,开始找一些小项目实践学习一下,并把学习过程中遇到的问题和学到的知识记录下来。这是我学习的第一个Python项目: “Python 实现Window定时关机”。

环境:

win7 64-bit

python 3.4.3 (下载使用教程)+PyQt5-5.4 (下载使用教程)+sublime text 3 (下载)

打包工具 : Pyinstaller(下载使用教程)+ pywin32(下载使用教程)

Ui制作: 

包括label,label_2,label_3,label_4,lineEdit,lineEdit_2,pushButton七个组件,布局如下图:

控件作用:

Label   :显示“ 在 ”                Label_2:显示 “ 时 ”

Label_3 :显示 “ 分 ”              Label_4 : 用来显示操作后返回的信息

pushButton:用于提交命令

显示窗口:

直接编写的py文件运行时看不到窗口的,我们要加上一些必要的内容才能显示我们的窗口。

代码最前面:

import sys 

代码最后面:

if __name__ == '__main__':   app = QtWidgets.QApplication(sys.argv)Form = QtWidgets.QWidget()ui = Ui_shut()ui.setupUi(Form) Form.show()sys.exit(app.exec_())

之后再运行就可以看到shut.py就能看到窗口了

功能:

功能的目标:使Windows自动关机。

实现:

1. 通过python调用cmd,执行命令,而其中的数字是等待用户输入的数据,因此用两个lineEdit中获取的合法数字替换                           对应的h和m,用来获得lineEdit内容的方法:然后以h,m替换执行命令中的时,分。

h = self.lineEdit.text()
m = self.lineEdit_2.text()

2.为pushButton添加监听事件click:(其中,self.sd为触发该事件后,需要执行的操作)

self.pushButton = QtWidgets.QPushButton(shut,clicked=self.sd)

完整代码:

# -*—coding:utf-8 -*-
# Created: 07-04-2017
#      by: python 3.4.3 and PyQt5-5.4
import sys
import os      # Python执行系统命令方法所用到的包
from PyQt5 import QtCore,QtGui,QtWidgets class Ui_shut(object):   #类 继承object类flag = Truedef setupUi(self,shut):  #方法#设置窗体的大小shut.setObjectName("shut")shut.resize(420,180)             shut.setFixedSize(420,180)self.label = QtWidgets.QLabel(shut)self.label.setGeometry(QtCore.QRect(40,50,41,51)) #标签的位置self.label.setFont(QtGui.QFont("Roman times",10,QtGui.QFont.Bold))self.label.setObjectName("label")self.lineEdit = QtWidgets.QLineEdit(shut)self.lineEdit.setGeometry(QtCore.QRect(70, 50, 71, 41))self.lineEdit.setFont(QtGui.QFont("Roman times",10,QtGui.QFont.Bold))self.lineEdit.setObjectName("lineEdit")self.label_2 = QtWidgets.QLabel(shut)self.label_2.setGeometry(QtCore.QRect(150, 60, 31, 31))self.label_2.setFont(QtGui.QFont("Roman times",10,QtGui.QFont.Bold))self.label_2.setObjectName("label_2")self.lineEdit_2 = QtWidgets.QLineEdit(shut)self.lineEdit_2.setGeometry(QtCore.QRect(180, 50, 71, 41))self.lineEdit_2.setFont(QtGui.QFont("Roman times",10,QtGui.QFont.Bold))self.lineEdit_2.setObjectName("lineEdit_2")self.label_3 = QtWidgets.QLabel(shut)self.label_3.setGeometry(QtCore.QRect(260, 60, 31, 31))self.label_3.setFont(QtGui.QFont("Roman times",10,QtGui.QFont.Bold))self.label_3.setObjectName("label_3")self.pushButton = QtWidgets.QPushButton(shut,clicked=self.sd)  #为pushButton添加监听事件click。self.pushButton.setGeometry(QtCore.QRect(290, 50, 101, 41))self.pushButton.setFont(QtGui.QFont("Roman times",10,QtGui.QFont.Bold))self.pushButton.setObjectName("pushButton")self.label_4 = QtWidgets.QLabel(shut)self.label_4.setGeometry(QtCore.QRect(0, 120, 500, 31))self.label_4.setFont(QtGui.QFont("Roman times",10,QtGui.QFont.Bold))self.label_4.setObjectName("label_4")self.retranslateUi(shut)QtCore.QMetaObject.connectSlotsByName(shut) #connectSlotsByName是一个QMetaObject类里的静态函数,其作用是用来将QObject * o里的子QObject的某些信号按照其objectName连接到o的槽上。def retranslateUi(self,shut):_translate = QtCore.QCoreApplication.translateshut.setWindowTitle(_translate("shut", "Windows定时关机器"))self.label.setText(_translate("shut", "在:"))self.label_2.setText(_translate("shut", "时"))self.label_3.setText(_translate("shut", "分"))self.label_4.setText(_translate("shut", "    请输入关机时间"))self.pushButton.setText(_translate("shut", "设置"))def sd(self,shut):        #self.sd为触发该事件后,需要执行的操作。h = self.lineEdit.text()m = self.lineEdit_2.text()if self.flag:self.flag = Falsetry:                     #捕获所有异常os.popen('at'+ h + ':' + m + ' shutdown -s') #python执行cmd命令的方法self.label_4.setText('    设置成功! 系统将关机在今天 '+h+':'+m)self.pushButton.setText('移除')self.lineEdit.clear()self.lineEdit_2.clear()except:self.label_4.setText('Something is wrong~')else:self.flag = Truetry:os.popen('at /delete /yes')self.label_4.setText('成功,全部移除')self.pushButton.setText('Set')self.lineEdit.clear()self.lineEdit_2.clear()except:self.label_4.setText('Something is wrong')if __name__ == '__main__':   app = QtWidgets.QApplication(sys.argv)Form = QtWidgets.QWidget()ui = Ui_shut()ui.setupUi(Form) Form.show()sys.exit(app.exec_())

运行效果:

运行shut.py,输入15和30点击设置。

这时我们在计算机搜索任务计划,打开任务计划,可以在任务计划程序库中可以发现已经在计划中了,点击移除,刷新任务计划。

成功移除任务,功能实现

打包:

用Python的Pyinstaller组件。cd到shut.py所在目录后,执行cmd命令:


pyinstaller -F -w shut.py

这时,在shut.py所在目录生成dist文件夹。生成的exe路径。dist>>shut(Python源码文件名)>>shut.exe.前面顺利的话,双击shut.exe便会显示前面源码运行同样的窗口和操作。这样,你就可以把shut 目录 整个发给你的朋友。他们就可以通过双击shut.exe使用你的程序了。

注意:一定要加 ‘-F’,不然会生成很多依赖包

这是我打包后的文件:shut.exe

实践项目一:Python实现Windows定时关机相关推荐

  1. python定时开关机的代码_利用Python实现Windows定时关机功能

    是最初的几个爬虫,让我认识了Python这个新朋友,虽然才刚认识了几天,但感觉有种莫名的默契感.每当在别的地方找不到思路,总能在Python找到解决的办法.自动关机,在平时下载大文件,以及跑程序的时候 ...

  2. java语句电脑定时关机_月光软件站 - 编程文档 - Java - windows定时关机程序

    应网友yangxjn需要写的一个windows定时关机程序 . /** * Created by IntelliJ IDEA. * autor:cofbean * Date: 2004-3-10 * ...

  3. windows 定时关机小脚本

    windows 定时关机小脚本 在使用Windows时开关机总是有些麻烦,这里我写了一个一键关机以及定时关机两个小脚本供大家下载使用(下载后新建文本文档复制到文本中然后将后缀名改为.bat 即可运行) ...

  4. linux控制终端关机命令,linux定时关机命令?linux立即关机命令?终端切换界面?windows定时关机和linux定时关机的方法(shut...

    你是否正在寻找关于linux定时关机命令的内容?让我把最完整的东西奉献给你: windows定时关机和linux定时关机的方法(shutdown命令) 作者:佚名 字体:[ ] 来源:互联网 时间:0 ...

  5. 延时关机命令 linux,windows定时关机和linux定时关机的方法(shutdown命令)

    windows版:由于各种原因我们可能需要定时关机的功能.在windows下常用的做法可能是使用一些工具或常用软件(例如酷我音乐盒)实现.但如果你没有该功能的软件又不想为了实现这个功能去增添软件,你可 ...

  6. windows定时关机的脚本

    您可以使用 Windows 中的命令提示符 (cmd) 来创建一个脚本来定时关机.以下是创建一个简单的脚本的步骤: 打开记事本应用程序 输入以下命令并保存为 ".bat" 文件: ...

  7. linux设置定时关机命令,windows定时关机和linux定时关机的方法(shutdown命令)

    windows版:由于各种原因我们可能需要定时关机的功能.在windows下常用的做法可能是使用一些工具或常用软件(例如酷我音乐盒)实现.但如果你没有该功能的软件又不想为了实现这个功能去增添软件,你可 ...

  8. linux定时关机shutdown,windows定时关机和linux定时关机的方法(shutdown命令)

    windows版:由于各种原因我们可能需要定时关机的功能.在windows下常用的做法可能是使用一些工具或常用软件(例如酷我音乐盒)实现.但如果你没有该功能的软件又不想为了实现这个功能去增添软件,你可 ...

  9. python电脑定时关机_Python实现Windows定时关机

    ui制作: 照旧,笔者由Qt制作完成需要的ui,包括label,label_2,label_3,lable_4,lineEdit,lineEdit_2,pushButton组件.大致布局如下 两个li ...

最新文章

  1. R语言ggplot2可视化分面图(facet_grid):去除分面图灰色矩形框以及框中的标签、Getting rid of facet_grid labels on those gray boxes
  2. Entity Framework 4.1 DbContext使用记之二——如何玩转本地实体? DbSet.Local属性的使用与实现...
  3. 安装完python后怎么使用-安装anaconda后该怎么使用
  4. JavaScript splice, slice, split方法区分整理, replace方法对字符处理
  5. python import_Python中import机制
  6. [SDOI2011]染色
  7. 电路知识--认识原理图(二)
  8. pg 定时删除_PostgreSQL的时间函数使用整理
  9. 如何使antd中table表格不换行
  10. C++笔记-函数参数使用void *的野路子
  11. Axure的一些入门小案例
  12. 【bzoj1712】[Usaco2007 China]Summing Sums 加密 矩阵乘法
  13. 使用云打码识别验证码
  14. 南方CASS9.0软件资源下载附安装教程
  15. 【转载】微信小程序中引入iconfont阿里矢量图库
  16. [LeetCode]89.Gray Code
  17. 22考研基础阶段计划;超七成考研人已开始复习!
  18. 互联网日报 | 辛巴回应燕窝事件;有赞预计年交易额将破千亿;杨惠妍连续4年蝉联中国女首富...
  19. x230接2K显示器
  20. 拨开云雾synchronized使用五种方式介绍

热门文章

  1. unity Shader 扭曲效果
  2. Linux Ubuntu系统下配置c++编程环境
  3. chemkin 使用C3H8/空气在对冲里燃烧
  4. Java实现输入学号、姓名、年龄,并对其进行输出
  5. C#窗体程序编写,猜数字游戏(几A几B)
  6. CG动画制作——实训项目前期工作(四)
  7. Unity Shader 顶点动画 广告牌
  8. 关于多层板,你了解多少?
  9. 京东-头条-百度面试题
  10. WebAPI开发中的定时处理