基于Python编写一个自动关机程序
作者:轻松学Python 发布时间:2023-07-30 08:19:20
标签:Python,自动,关机
1、实现效果
2、实现步骤
模块导入
import os,sys,time
from PyQt5 import QtCore,QtWidgets,QtGui
窗口设置
def pageShow(self,page):
#设置窗口的位置和大小
page.setGeometry(400,400,400,200)
#设置窗口的标题
page.setWindowTitle('Window shutdown')
#设置窗口的图标
#page.setWindowIcon(QtGui.QIcon('#ddffgg'))
#设置工具中提示的字体样式
QtWidgets.QToolTip.setFont(QtGui.QFont('SansSerif',10))
#创建一个提示
page.setToolTip('这是Window关机工具')
创建一个文本标签
self.label = QtWidgets.QLabel(page)
self.label.setGeometry(QtCore.QRect(60, 20, 120, 45))
self.label.setFont(QtGui.QFont("Roman times",10,QtGui.QFont.Bold))
创建一个文本标签和时间栏框
self.label2 = QtWidgets.QLabel(page)
self.label2.setGeometry(QtCore.QRect(100, 55, 40, 51))
设置该文件的字体样式,大小。
self.label2.setFont(QtGui.QFont("Roman times",10,QtGui.QFont.Bold))
创建一个日期时间文本框,QDateEdit表示添加日期文本框,QTimeEdit表示添加时间文本框。
self.time = QtWidgets.QDateTimeEdit(page)
设置日期时间框的位置大小依次是左间距,上间距,宽,高。
self.time.setGeometry(QtCore.QRect(140, 70, 180, 25))
self.time.setDisplayFormat("yyyy-MM-dd HH:mm:ss")
设置日期可以使用日历插件
self.time.setCalendarPopup(True)
根据PyQt方法获取系统的当前时间
now = QtCore.QDateTime.currentDateTime()
now_time = now.toString(QtCore.Qt.ISODate)
将当前系统时间赋值给时间框中
now_time = time.strftime("%Y-%m-%d %H:%M:%S",time.localtime())
self.time.setDateTime(QtCore.QDateTime.fromString(now_time, 'yyyy-MM-dd hh:mm:ss'))
一个按钮并设置添加单击事件
self.btn = QtWidgets.QPushButton(page,clicked=self.shut)
#self.btn.clicked.connect(self.shut(page))
self.btn.setToolTip('这里是提交按钮')
显示默认尺寸
#self.btn.resize(btn.sizeHint())
self.btn.move(110,110)
创建一个按钮并设置清除关机任务单击事件
self.btn1 = QtWidgets.QPushButton(page,clicked=self.cleart)
#self.btn.clicked.connect(self.shut())
self.btn1.setToolTip('这里是清除任务按钮')
显示默认尺寸
self.btn1.move(210,110)
设置一个文本提示框
self.text = QtWidgets.QLabel(page)
self.text.setGeometry(QtCore.QRect(25, 150, 350, 25))
self.text.setFont(QtGui.QFont("Roman times",14,QtGui.QFont.Bold))
self.setUI(page)
page.show()
设置工具窗口中显示的部件文本信息
def setUI(self,page):
_translate = QtCore.QCoreApplication.translate
self.label.setText(_translate("page","请输入关机时间"))
self.label2.setText(_translate("page","日期:"))
self.btn.setText(_translate("page","提交"))
self.btn1.setText(_translate("page","清除"))
self.text.setText(_translate("page","请设置关机时间!"))
添加关机计划
def shut(self,page):
datetime = self.time.text()
t1 = time.strptime(datetime,"%Y-%m-%d %H:%M:%S")
t = int(time.mktime(t1))
nq = int(time.time())
d = t-nq
#print(d)
#exit()
if d>0:
try:
os.system('shutdown -s -t %d' % d)
self.text.setText("电脑将在%s关机!" % datetime)
#self.time.setDateTime('1')
except:
self.text.setText("设置失败!")
else:
self.text.setText("日期设置错误!")
清除关机计划
def cleart(self,page):
try:
os.system('shutdown -a')
self.text.setText("已经清除关机任务!")
except:
self.text.setText("清除任务失败!")
if __name__=='__main__':
创建应用程序和对象
app = QtWidgets.QApplication(sys.argv)
page = QtWidgets.QWidget()
ui = guanji()
ui.pageShow(page)
sys.exit(app.exec_())
3、全部代码
import os,sys,time
from PyQt5 import QtCore,QtWidgets,QtGui
class guanji(object):
def pageShow(self,page):
#设置窗口的位置和大小
page.setGeometry(400,400,400,200)
#设置窗口的标题
page.setWindowTitle('Window shutdown')
#设置窗口的图标
#page.setWindowIcon(QtGui.QIcon('#ddffgg'))
#设置工具中提示的字体样式
QtWidgets.QToolTip.setFont(QtGui.QFont('SansSerif',10))
#创建一个提示
page.setToolTip('这是Window关机工具')
self.label = QtWidgets.QLabel(page)
self.label.setGeometry(QtCore.QRect(60, 20, 120, 45))
self.label.setFont(QtGui.QFont("Roman times",10,QtGui.QFont.Bold))
self.label2 = QtWidgets.QLabel(page)
self.label2.setGeometry(QtCore.QRect(100, 55, 40, 51))
self.label2.setFont(QtGui.QFont("Roman times",10,QtGui.QFont.Bold))
self.time = QtWidgets.QDateTimeEdit(page)
self.time.setGeometry(QtCore.QRect(140, 70, 180, 25))
self.time.setDisplayFormat("yyyy-MM-dd HH:mm:ss")
self.time.setCalendarPopup(True)
now_time = time.strftime("%Y-%m-%d %H:%M:%S",time.localtime())
self.time.setDateTime(QtCore.QDateTime.fromString(now_time, 'yyyy-MM-dd hh:mm:ss'))
self.btn = QtWidgets.QPushButton(page,clicked=self.shut)
self.btn.setToolTip('这里是提交按钮')
self.btn.move(110,110)
self.btn1 = QtWidgets.QPushButton(page,clicked=self.cleart)
self.btn1.setToolTip('这里是清除任务按钮')
self.btn1.move(210,110)
self.text = QtWidgets.QLabel(page)
self.text.setGeometry(QtCore.QRect(25, 150, 350, 25))
self.text.setFont(QtGui.QFont("Roman times",14,QtGui.QFont.Bold))
self.setUI(page)
page.show()
def setUI(self,page):
_translate = QtCore.QCoreApplication.translate
self.label.setText(_translate("page","请输入关机时间"))
self.label2.setText(_translate("page","日期:"))
self.btn.setText(_translate("page","提交"))
self.btn1.setText(_translate("page","清除"))
self.text.setText(_translate("page","请设置关机时间!"))
def shut(self,page):
datetime = self.time.text()
t1 = time.strptime(datetime,"%Y-%m-%d %H:%M:%S")
t = int(time.mktime(t1))
nq = int(time.time())
d = t-nq
if d>0:
try:
os.system('shutdown -s -t %d' % d)
self.text.setText("电脑将在%s关机!" % datetime)
except:
self.text.setText("设置失败!")
else:
self.text.setText("日期设置错误!")
def cleart(self,page):
try:
os.system('shutdown -a')
self.text.setText("已经清除关机任务!")
except:
self.text.setText("清除任务失败!")
if __name__=='__main__':
app = QtWidgets.QApplication(sys.argv)
page = QtWidgets.QWidget()
ui = guanji()
ui.pageShow(page)
sys.exit(app.exec_())
来源:https://www.cnblogs.com/hahaa/p/15773283.html


猜你喜欢
- 本文实例讲述了php延迟静态绑定的方法。分享给大家供大家参考。具体分析如下:php延迟静态绑定:指类的self,不是以定义时为准,而是以计算
- 1、DataFrame返回的不是对象。2、DataFrame查出来的数据返回的是一个dataframe数据集。3、DataFrame只有遇见
- 在使用pymongo时遇到了一个小坑:在Flask框架中,将字典插入mongodb后再返回就报错@app.route('xxxx&#
- python字符串过滤性能比较5种方法比较总共比较5种方法。直接看代码:import randomimport timeimport osi
- 首先交代一下运行环境和工具版本:WIN10MINGW64ORACLEINSTANCCLIENT_18_3 x64Jetbrins Golan
- 前言使用python实现设计模式中的单例模式。单例模式是一种比较常用的设计模式,其实现和使用场景判定都是相对容易的。本文将简要介绍一下pyt
- 这些年来,我发现许多开发者对于何时使用数据操纵语言(DML)触发器与何时使用约束感到迷惑。许多时候,如果没有正确应用这两个对象,就会造成问题
- pandas.DataFrame行名(index)和列名(columns)的修改方法如下。rename()任意的行名(index)和列名(c
- 1、下载安装MySQLdb类库http://www.djangoproject.com/r/python-mysql/2、修改setting
- 通过XSL转换XML文件 最近,我喜欢上了XML编程,但又苦于它的美观程度又不够,找了许多书才搞定。用XML好是蛮好,但它还是不太适合做显示
- 演示:<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//
- threading.Event机制类似于一个线程向其它多个线程发号施令的模式,其它线程都会持有一个threading.Event的对象,这些
- 什么是docstring在软件工程中,其实编码所占的部分是非常小的,大多是其它的事情,比如写文档。文档是沟通的工具。 在Python中,比较
- mysql数据库在做查询时候,有时候是英文字母大小写敏感的,有时候又不是的,主要是由mysql的字符校验规则的设置决定的,通常默认是不支持的
- 一:Zmail的优势:1:自动填充大多数导致服务端拒信的头信息(From To LocalHost之类的)2:将一个字典映射为email,构
- 列表是什么列表是元素的集合,存储在一个变量中。列表中存储的元素类型没有限制,根据需要动态分配和回收内存列表中的每个元素都会分配一个数字用来表
- 使用tensorflow过程中,训练结束后我们需要用到模型文件。有时候,我们可能也需要用到别人训练好的模型,并在这个基础上再次训练。这时候我
- 1.安装vscode和python3.7(安装路径在:E:\Python\Python37);2.打开vscode,在左下角点击设置图标选择
- 加在< head>中< SCRIPT LANGUAGE="JavaScript">//more
- 后台线程•Master Thread核心后台线程,主要负责将缓冲池的数据异步刷新到磁盘。例如脏页的刷新,插入缓冲的合并,undo 页的回收等