Python 使用 PyQt5 开发的关机小工具分享
作者:木楉。 发布时间:2023-09-15 05:06:02
标签:Python,PyQt5,工具
前两天简单认识了一下PyQt5,通过练习开发了一款在Window下自定义关机的小工具,
代码如下:
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))
#创建一个日期时间文本框,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()
<br> #设置工具窗口中显示的部件文本信息
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_())
来源:https://www.cnblogs.com/lovele-/p/9401553.html


猜你喜欢
- 映射类型操作符(1)标准类型操作符 字典可以和所有的标准
- python pyinstaller pyqt4 打包 QWindows最近在做课设,用pyqt设计界面。然后用pyinstaller打包程
- 很多人都将<数据库设计范式>作为数据库表结构设计“圣经”,认为只要按照这个范式需求设计,就能让设计出来的表结构足够优化,既能保证
- Tkinter实现UI分页标签显示:Input页,红色部分为当前Frame的位置,下半部分为第一页的子标签;三页标签的显示内容各不相同。实现
- 前言随着Python3的普及,Selenium3也跟上了行程。而Selenium3最大的变化是去掉了Selenium RC,另外就是Webd
- 本文记录了mysql 5.7.18绿色版下载安装的详细过程1、先下载mysq5.7.18绿色版,然后解压出来,放在一个目录下,我的解压mys
- 1、replicate_do_db 和 replicate_ignore_db 不要同时出现。容易出现混淆。也是毫无意义的。 Replica
- 一、shutil模块(了解):高级的文件、文件夹、压缩包处理模块。import shutil# shutil.copyfileobj(fsr
- 本文实例讲述了Python实现获取磁盘剩余空间的2种方法。分享给大家供大家参考,具体如下:方法1:import ctypesimport o
- 本文实例讲述了JavaScript数据结构中串的表示与应用。分享给大家供大家参考,具体如下:类似于线性表的顺序存储结构,用一组地址连续的存储
- 一:简介由paramiko是用python语言写的一个模块,遵循SSH2协议,支持以加密和认证的方式,进行远程服务器的连接。由于使用的是py
- 在SQL Server 中,如果给表的一个字段设置了默认值,就会在系统表sysobjects中生成一个默认约束。如果想删除这个设置了默认值的
- 两个容器,一个flask-demo,一个是redis-server在一个自定义网络bridge,相互ping,不需要知道ip,只用名字就能p
- 我的经历前几天有人问我这个问题。我说GET是用于获取数据的,POST,一般用于将数据发给服务器之用。这个答案好像并不是他想要的。于是他继续追
- 爬虫就是请求网站并提取数据的自动化程序。其中请求,提取,自动化是爬虫的关键!下面我们分析爬虫的基本流程爬虫的基本流程发起请求通过HTTP库向
- Python是一种高级编程语言,它在众多编程语言中,拥有极高的人气和使用率。Python中的多进程和进程池是其强大的功能之一,可以让我们更加
- python2.7中 集成了json的处理(simplejson),但在实际应用中,从mysql查询出来的数据,通常有日期格式,这时候,会报
- 导言:当向类型化的数据集(Typed DataSet)添加一个TableAdapter时,相应的DataTable的构架已经由TableAd
- python的多进程性能要明显优于多线程,因为cpython的GIL对性能做了约束。Python是运行在解释器中的语言,查找资料知道,pyt
- Python3.7 基于 pycryptodome 的AES加密解密、RSA加密解密、加签验签,具体代码如下所示:#!/usr/bin/en