实践项目一:Python实现Windows定时关机
原文出处: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定时关机相关推荐
- python定时开关机的代码_利用Python实现Windows定时关机功能
是最初的几个爬虫,让我认识了Python这个新朋友,虽然才刚认识了几天,但感觉有种莫名的默契感.每当在别的地方找不到思路,总能在Python找到解决的办法.自动关机,在平时下载大文件,以及跑程序的时候 ...
- java语句电脑定时关机_月光软件站 - 编程文档 - Java - windows定时关机程序
应网友yangxjn需要写的一个windows定时关机程序 . /** * Created by IntelliJ IDEA. * autor:cofbean * Date: 2004-3-10 * ...
- windows 定时关机小脚本
windows 定时关机小脚本 在使用Windows时开关机总是有些麻烦,这里我写了一个一键关机以及定时关机两个小脚本供大家下载使用(下载后新建文本文档复制到文本中然后将后缀名改为.bat 即可运行) ...
- linux控制终端关机命令,linux定时关机命令?linux立即关机命令?终端切换界面?windows定时关机和linux定时关机的方法(shut...
你是否正在寻找关于linux定时关机命令的内容?让我把最完整的东西奉献给你: windows定时关机和linux定时关机的方法(shutdown命令) 作者:佚名 字体:[ ] 来源:互联网 时间:0 ...
- 延时关机命令 linux,windows定时关机和linux定时关机的方法(shutdown命令)
windows版:由于各种原因我们可能需要定时关机的功能.在windows下常用的做法可能是使用一些工具或常用软件(例如酷我音乐盒)实现.但如果你没有该功能的软件又不想为了实现这个功能去增添软件,你可 ...
- windows定时关机的脚本
您可以使用 Windows 中的命令提示符 (cmd) 来创建一个脚本来定时关机.以下是创建一个简单的脚本的步骤: 打开记事本应用程序 输入以下命令并保存为 ".bat" 文件: ...
- linux设置定时关机命令,windows定时关机和linux定时关机的方法(shutdown命令)
windows版:由于各种原因我们可能需要定时关机的功能.在windows下常用的做法可能是使用一些工具或常用软件(例如酷我音乐盒)实现.但如果你没有该功能的软件又不想为了实现这个功能去增添软件,你可 ...
- linux定时关机shutdown,windows定时关机和linux定时关机的方法(shutdown命令)
windows版:由于各种原因我们可能需要定时关机的功能.在windows下常用的做法可能是使用一些工具或常用软件(例如酷我音乐盒)实现.但如果你没有该功能的软件又不想为了实现这个功能去增添软件,你可 ...
- python电脑定时关机_Python实现Windows定时关机
ui制作: 照旧,笔者由Qt制作完成需要的ui,包括label,label_2,label_3,lable_4,lineEdit,lineEdit_2,pushButton组件.大致布局如下 两个li ...
最新文章
- R语言ggplot2可视化分面图(facet_grid):去除分面图灰色矩形框以及框中的标签、Getting rid of facet_grid labels on those gray boxes
- Entity Framework 4.1 DbContext使用记之二——如何玩转本地实体? DbSet.Local属性的使用与实现...
- 安装完python后怎么使用-安装anaconda后该怎么使用
- JavaScript splice, slice, split方法区分整理, replace方法对字符处理
- python import_Python中import机制
- [SDOI2011]染色
- 电路知识--认识原理图(二)
- pg 定时删除_PostgreSQL的时间函数使用整理
- 如何使antd中table表格不换行
- C++笔记-函数参数使用void *的野路子
- Axure的一些入门小案例
- 【bzoj1712】[Usaco2007 China]Summing Sums 加密 矩阵乘法
- 使用云打码识别验证码
- 南方CASS9.0软件资源下载附安装教程
- 【转载】微信小程序中引入iconfont阿里矢量图库
- [LeetCode]89.Gray Code
- 22考研基础阶段计划;超七成考研人已开始复习!
- 互联网日报 | 辛巴回应燕窝事件;有赞预计年交易额将破千亿;杨惠妍连续4年蝉联中国女首富...
- x230接2K显示器
- 拨开云雾synchronized使用五种方式介绍