Python 使用 PyQt5 开发的关机小工具分享


Posted in Python onJuly 16, 2020

前两天简单认识了一下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_())

以上这篇Python 使用 PyQt5 开发的关机小工具分享就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python实现百度关键词排名查询
Mar 30 Python
Python中MYSQLdb出现乱码的解决方法
Oct 11 Python
python获得linux下所有挂载点(mount points)的方法
Apr 29 Python
python使用xlrd实现检索excel中某列含有指定字符串记录的方法
May 09 Python
python调用xlsxwriter创建xlsx的方法
May 03 Python
对python中xlsx,csv以及json文件的相互转化方法详解
Dec 25 Python
python爬虫爬取微博评论案例详解
Mar 27 Python
python 利用浏览器 Cookie 模拟登录的用户访问知乎的方法
Jul 11 Python
Python Django Vue 项目创建过程详解
Jul 29 Python
Python坐标轴操作及设置代码实例
Jun 04 Python
python中slice参数过长的处理方法及实例
Dec 15 Python
Pytorch中的数据集划分&正则化方法
May 27 Python
Python csv文件记录流程代码解析
Jul 16 #Python
Python 抓取数据存储到Redis中的操作
Jul 16 #Python
django filter过滤器实现显示某个类型指定字段不同值方式
Jul 16 #Python
解决python对齐错误的方法
Jul 16 #Python
Python爬虫实例——爬取美团美食数据
Jul 15 #Python
django Model层常用验证器及自定义验证器详解
Jul 15 #Python
浅谈Django前端后端值传递问题
Jul 15 #Python
You might like
基于文本的访客签到簿
2006/10/09 PHP
ThinkPHP中URL路径访问与模块控制器之间的关系
2014/08/23 PHP
php实现微信公众平台账号自定义菜单类
2014/12/02 PHP
Laravel接收前端ajax传来的数据的实例代码
2017/07/20 PHP
PHP实现简易用户登录系统
2020/07/10 PHP
Alliance vs Liquid BO3 第三场2.13
2021/03/10 DOTA
比较详细的关于javascript中void(0)的具体含义解释
2007/08/02 Javascript
JS简单的图片放大缩小的两种方法
2013/11/11 Javascript
javascript间隔刷新的简单实例
2013/11/14 Javascript
防止登录页面出现在frame中js代码
2014/07/22 Javascript
jQuery响应鼠标事件并隐藏与显示input默认值
2014/08/24 Javascript
浅谈javascript中call()、apply()、bind()的用法
2015/04/20 Javascript
js实现的动画导航菜单效果代码
2015/09/10 Javascript
IE6-IE9使用JSON、table.innerHTML所引发的问题
2015/12/22 Javascript
Javascript点击其他任意地方隐藏关闭DIV实例
2016/06/21 Javascript
js遍历获取表格内数据的方法(必看)
2017/04/06 Javascript
详解Nodejs之npm&amp;package.json
2017/06/15 NodeJs
详解.vue文件中监听input输入事件(oninput)
2017/09/19 Javascript
ztree实现左边动态生成树右边为内容详情功能
2017/11/03 Javascript
jquery的$().each和$.each的区别
2019/01/18 jQuery
详解vue组件中使用路由方法
2019/02/12 Javascript
v-slot和slot、slot-scope之间相互替换实例
2020/09/04 Javascript
[02:16]DOTA2英雄基础教程 干扰者
2014/01/15 DOTA
[10:21]2018DOTA2国际邀请赛寻真——Winstrike
2018/08/11 DOTA
Python中super关键字用法实例分析
2015/05/28 Python
windows下python安装paramiko模块和pycrypto模块(简单三步)
2017/07/06 Python
python实现微信小程序自动回复
2018/09/10 Python
python 实现在无序数组中找到中位数方法
2020/03/03 Python
如何在django中实现分页功能
2020/04/22 Python
matplotlib源码解析标题实现(窗口标题,标题,子图标题不同之间的差异)
2021/02/22 Python
迪奥美国官网:Dior美国
2019/12/07 全球购物
宿舍保安职务说明书
2014/02/25 职场文书
《雕塑之美》教学反思
2014/04/24 职场文书
协会周年庆活动方案
2014/08/26 职场文书
微软Win11什么功能最惊艳? Windows11新功能特性汇总
2021/11/21 数码科技
JavaScript利用html5新方法操作元素类名详解
2021/11/27 Javascript