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()
#设置工具窗口中显示的部件文本信息
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 开发的关机小工具的更多相关文章
- Pyqt5开发一款小工具(翻译小助手)
翻译小助手 开发需求 首先五月份的时候,正在学习爬虫的中级阶段,这时候肯定要接触到js逆向工程,于是上网找了一个项目来练练手,这时碰巧有如何进行对百度翻译的API破解思路,仿造网上的思路,我摸索着完成 ...
- python开发目录合并小工具 PathMerge
前言 这个程序陆陆续续开发了几天,正好我在学Python,就一边做一边学,倒是学到不少东西. 不得不说python是快速开发的好工具. 程序做了一些改进,这两天又忙着毕设,现在才想起来发到博客上.想想 ...
- Python实现Json结构对比的小工具兼谈编程求解问题
摘要: 通过使用Python编写一个解析Json结构对比的小工具,来提炼编程求解的通用步骤和技巧. 难度: 初级 先上代码. jsondiff.py #!/usr/bin/python #_*_enc ...
- 几款Android开发人员必备小工具
在这里我介绍一下我常常在Android Studio里面使用的小工具吧,这些工具都能够在plugin里面搜索到. (当然了哈.我也是从网上找的.用着挺方便的,在这里总结一下) Gsonformat: ...
- WPF开发查询加班小工具
先说一下,我们公司是六点下班,超过7点开始算加班,但是加班的时间是从六点开始计算,以0.5个小时为计数,就是你到了六点半,不算加班半小时,但是加班到七点半,就是加班了一个半小时. 一.打卡记录 首先, ...
- python爬虫入门-开发环境与小例子
python爬虫入门 开发环境 ubuntu 16.04 sublime pycharm requests库 requests库安装: sudo pip install requests 第一个例子 ...
- Python全栈开发-有趣的小程序
进度条的打印 import sys,time for i in range(20): sys.stdout.write('$') #stdout是标准输出的意思,在一般电脑上,stdout的 ...
- AutoIt3(AU3)开发的装机小工具,实现快速检测以及一些重用快捷操作功能
项目相关地址 源码:https://github.com/easonjim/Installed_Tools bug提交:https://github.com/easonjim/Installed_To ...
- 简化网站开发:SiteMesh小工具
在一个站点的制备,几乎所有的页面将具有相同的部分.导航栏例如,顶,每一页都是一样的,在底部的版权声明,每一页还都是一样的. 因此,在顶部导航栏的准备.第一种方法是直接复制的所有导航栏的代码,这种方法是 ...
随机推荐
- 16.AutoMapper 之可查询扩展(Queryable Extensions)
https://www.jianshu.com/p/4b23e94a7825 可查询扩展(Queryable Extensions) 当在像NHibernate或者Entity Framework之类 ...
- AQS之Condition
一.引言 一般我们在使用锁的Condition时,我们一般都是这么使用,以ReentrantLock为例, ReentrantLock lock = new ReentrantLock(); Cond ...
- 【总结】Android 应用测试总结
前提 所有的功能分支已完成 启动: 1. 启动入口:桌面正常启动,最近运行启动,所有程序列表中启动,锁屏快捷启动2. 其他入口:从其他程序开启应用,从外部以文件形式打开应用(如果有)3. 退回:从其他 ...
- 接口开发中 遇到的坑——Java byte与C# byte 数据转换问题
前提: 公司与其他公司进行接口对接 需要使用Byte[]数据流传输数据 原本想法如下:直接IO生成就ok了 using System; using System.IO; using System.Te ...
- 自动化运维——HelloWorld(一)
1.HelloWorld vi first_shell.sh #!/bin/bash #Filename: first_shell.sh #auto echo hello world! #by aut ...
- 22_1mybaits入门
1.什么是框架? 它是我们软件开发中的一套解决方案,不同的框架解决的是不同的问题. 使用框架的好处: 框架封装了很多的细节,使开发者可以使用极简的方式实现功能.大大提高开发效率. 2.三层架构 表现层 ...
- Tensorrt之tf-trt
使用python接口, 另外一种方式就是使用tf-trt,优化后的模型还是pb.优化的过程主要是一些层的合并啊之类的,加速结果不是特别明显,测了两个网络, 加速了10%的样子.优化后仍是pb,因此可以 ...
- encode()和decode()两个函数
编码可以将抽象字符以二进制数据的形式表示,有很多编码方法,如utf-8.gbk等,可以使用encode()函数对字符串进行编码,转换成二进制字节数据,也可用decode()函数将字节解码成字符串:用d ...
- Scala传递参数遇到的坑
1.方法中的参数全为val型. 例: def insertMap(map:=>Map[String,Int]):Unit={ map+=("b"->2) //报错 ...
- JPA学习(三、JPA_API)
框架学习之JPA(三) JPA是Java Persistence API的简称,中文名Java持久层API,是JDK 5.0注解或XML描述对象-关系表的映射关系,并将运行期的实体对象持久化到数据库中 ...