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

     #设置工具窗口中显示的部件文本信息
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 开发的关机小工具的更多相关文章

  1. Pyqt5开发一款小工具(翻译小助手)

    翻译小助手 开发需求 首先五月份的时候,正在学习爬虫的中级阶段,这时候肯定要接触到js逆向工程,于是上网找了一个项目来练练手,这时碰巧有如何进行对百度翻译的API破解思路,仿造网上的思路,我摸索着完成 ...

  2. python开发目录合并小工具 PathMerge

    前言 这个程序陆陆续续开发了几天,正好我在学Python,就一边做一边学,倒是学到不少东西. 不得不说python是快速开发的好工具. 程序做了一些改进,这两天又忙着毕设,现在才想起来发到博客上.想想 ...

  3. Python实现Json结构对比的小工具兼谈编程求解问题

    摘要: 通过使用Python编写一个解析Json结构对比的小工具,来提炼编程求解的通用步骤和技巧. 难度: 初级 先上代码. jsondiff.py #!/usr/bin/python #_*_enc ...

  4. 几款Android开发人员必备小工具

    在这里我介绍一下我常常在Android Studio里面使用的小工具吧,这些工具都能够在plugin里面搜索到. (当然了哈.我也是从网上找的.用着挺方便的,在这里总结一下) Gsonformat: ...

  5. WPF开发查询加班小工具

    先说一下,我们公司是六点下班,超过7点开始算加班,但是加班的时间是从六点开始计算,以0.5个小时为计数,就是你到了六点半,不算加班半小时,但是加班到七点半,就是加班了一个半小时. 一.打卡记录 首先, ...

  6. python爬虫入门-开发环境与小例子

    python爬虫入门 开发环境 ubuntu 16.04 sublime pycharm requests库 requests库安装: sudo pip install requests 第一个例子 ...

  7. Python全栈开发-有趣的小程序

    进度条的打印 import sys,time for i in range(20): sys.stdout.write('$')      #stdout是标准输出的意思,在一般电脑上,stdout的 ...

  8. AutoIt3(AU3)开发的装机小工具,实现快速检测以及一些重用快捷操作功能

    项目相关地址 源码:https://github.com/easonjim/Installed_Tools bug提交:https://github.com/easonjim/Installed_To ...

  9. 简化网站开发:SiteMesh小工具

    在一个站点的制备,几乎所有的页面将具有相同的部分.导航栏例如,顶,每一页都是一样的,在底部的版权声明,每一页还都是一样的. 因此,在顶部导航栏的准备.第一种方法是直接复制的所有导航栏的代码,这种方法是 ...

随机推荐

  1. jmeter的三种参数化方法

    JMeter的三种参数化方式包括: 1.用户参数 2.函数助手 3.CSV Data Set Config 一.用户参数 位置:添加-前置处理器-用户参数 操作:可添加多个变量或者参数 二.函数助手 ...

  2. decode与case when 函数

    百度百科: DECODE函数,是ORACLE公司的SQL软件ORACLE PL/SQL所提供的特有函数计算方式,以其简洁的运算方式,可控的数据模型和灵活的格式转换而闻名. DECODE 中的if-th ...

  3. git 本地tag和远程tag对应不上 vscode里pull不下代码

    vscode拉取代码是用  git pull --tags origin saas-xxx > git pull --tags origin saas-base From 172.16.0.xx ...

  4. Assets.xcassets的使用

    先介绍下Asset Catalog,Asset Catalog是Xcode5引入的一个新的图片管理方式,有几个好处: 1.自动管理图片,如@1x,@2x图片,使用的时候使用Asset 名字即可 2.管 ...

  5. redis数据库如何用Django框架缓存数据

    ---恢复内容开始--- 一.python 使用redis 1.1 安装 pip install redis 测试有一些基本的数据类型 import redis # redis 是一个缓存数据库 # ...

  6. DataWorks(数据工场)

    一.DataWorks(数据工场) DataWorks系列视频 https://help.aliyun.com/video_list/107549.html?spm=a2c4g.11174359.3. ...

  7. 007-SaltStack之修改salt-minion id

    1. 需求背景 之前使用saltstack添加的主机默认使用了hostname作为salt-minion id,而主机名如果没有做规范和规划,是比较难区分属于什么业务或者机器的.我们需要修改salt- ...

  8. PAT Basic 1029 旧键盘 (20 分)

    旧键盘上坏了几个键,于是在敲一段文字的时候,对应的字符就不会出现.现在给出应该输入的一段文字.以及实际被输入的文字,请你列出肯定坏掉的那些键. 输入格式: 输入在 2 行中分别给出应该输入的文字.以及 ...

  9. pytho xml

    转载自:https://www.cnblogs.com/gouguoqilinux/p/9168332.html xml是实现不同语言或程序直接进行数据交换的协议,跟json差不多,单json使用起来 ...

  10. deepin 常见快捷键及常用命令

    常用命令 1)安装软件命令行:dpkg -i <.deb file name>示例:dpkg -i avg71flm_r28-1_i386.deb2)安装一个目录下面所有的软件包命令行:d ...