前兩天簡(jiǎn)單認(rèn)識(shí)了一下PyQt5,通過(guò)練習(xí)開(kāi)發(fā)了一款在Window下自定義關(guān)機(jī)的小工具,
代碼如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
|
import os,sys,time from PyQt5 import QtCore,QtWidgets,QtGui class guanji( object ): def pageShow( self ,page): #設(shè)置窗口的位置和大小 page.setGeometry( 400 , 400 , 400 , 200 ) #設(shè)置窗口的標(biāo)題 page.setWindowTitle( 'Window shutdown' ) #設(shè)置窗口的圖標(biāo) #page.setWindowIcon(QtGui.QIcon('#ddffgg')) #設(shè)置工具中提示的字體樣式 QtWidgets.QToolTip.setFont(QtGui.QFont( 'SansSerif' , 10 )) #創(chuàng)建一個(gè)提示 page.setToolTip( '這是Window關(guān)機(jī)工具' ) #創(chuàng)建一個(gè)文本標(biāo)簽 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)) #創(chuàng)建一個(gè)文本標(biāo)簽和時(shí)間欄框 self .label2 = QtWidgets.QLabel(page) self .label2.setGeometry(QtCore.QRect( 100 , 55 , 40 , 51 )) #設(shè)置該文件的字體樣式,大小 self .label2.setFont(QtGui.QFont( "Roman times" , 10 ,QtGui.QFont.Bold)) #創(chuàng)建一個(gè)日期時(shí)間文本框,QDateEdit表示添加日期文本框,QTimeEdit表示添加時(shí)間文本框 self .time = QtWidgets.QDateTimeEdit(page) #設(shè)置日期時(shí)間框的位置大小依次是左間距,上間距,寬,高 self .time.setGeometry(QtCore.QRect( 140 , 70 , 180 , 25 )) self .time.setDisplayFormat( "yyyy-MM-dd HH:mm:ss" ) #設(shè)置日期可以使用日歷插件 self .time.setCalendarPopup( True ) #根據(jù)PyQt方法獲取系統(tǒng)的當(dāng)前時(shí)間 #now = QtCore.QDateTime.currentDateTime() #now_time = now.toString(QtCore.Qt.ISODate) #將當(dāng)前系統(tǒng)時(shí)間賦值給時(shí)間框中 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' )) #創(chuàng)建一個(gè)按鈕并設(shè)置添加單擊事件 self .btn = QtWidgets.QPushButton(page,clicked = self .shut) #self.btn.clicked.connect(self.shut(page)) self .btn.setToolTip( '這里是提交按鈕' ) #顯示默認(rèn)尺寸 #self.btn.resize(btn.sizeHint()) self .btn.move( 110 , 110 ) #創(chuàng)建一個(gè)按鈕并設(shè)置清除關(guān)機(jī)任務(wù)單擊事件 self .btn1 = QtWidgets.QPushButton(page,clicked = self .cleart) #self.btn.clicked.connect(self.shut()) self .btn1.setToolTip( '這里是清除任務(wù)按鈕' ) #顯示默認(rèn)尺寸 self .btn1.move( 210 , 110 ) #設(shè)置一個(gè)文本提示框 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> #設(shè)置工具窗口中顯示的部件文本信息 def setUI( self ,page): _translate = QtCore.QCoreApplication.translate self .label.setText(_translate( "page" , "請(qǐng)輸入關(guān)機(jī)時(shí)間" )) self .label2.setText(_translate( "page" , "日期:" )) self .btn.setText(_translate( "page" , "提交" )) self .btn1.setText(_translate( "page" , "清除" )) self .text.setText(_translate( "page" , "請(qǐng)?jiān)O(shè)置關(guān)機(jī)時(shí)間!" )) #添加關(guān)機(jī)計(jì)劃 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關(guān)機(jī)!" % datetime) #self.time.setDateTime('1') except : self .text.setText( "設(shè)置失??!" ) else : self .text.setText( "日期設(shè)置錯(cuò)誤!" ) #清除關(guān)機(jī)計(jì)劃 def cleart( self ,page): try : os.system( 'shutdown -a' ) self .text.setText( "已經(jīng)清除關(guān)機(jī)任務(wù)!" ) except : self .text.setText( "清除任務(wù)失??!" ) if __name__ = = '__main__' : #創(chuàng)建應(yīng)用程序和對(duì)象 app = QtWidgets.QApplication(sys.argv) page = QtWidgets.QWidget() ui = guanji() ui.pageShow(page) sys.exit(app.exec_()) |
以上這篇Python 使用 PyQt5 開(kāi)發(fā)的關(guān)機(jī)小工具分享就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持服務(wù)器之家。
原文鏈接:https://www.cnblogs.com/lovele-/p/9401553.html