溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

怎么用Python編寫一個自動關(guān)機程序

發(fā)布時間:2022-01-07 11:12:06 來源:億速云 閱讀:485 作者:iii 欄目:開發(fā)技術(shù)

本篇內(nèi)容介紹了“怎么用Python編寫一個自動關(guān)機程序”的有關(guān)知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領(lǐng)大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠?qū)W有所成!

1、實現(xiàn)效果

怎么用Python編寫一個自動關(guān)機程序

2、實現(xiàn)步驟

模塊導入

import os,sys,time
from PyQt5 import QtCore,QtWidgets,QtGui

窗口設置

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))
  #創(chuàng)建一個提示
  page.setToolTip('這是Window關(guān)機工具')

創(chuàng)建一個文本標簽

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)建一個文本標簽和時間欄框

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))

創(chuàng)建一個日期時間文本框,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)

根據(jù)PyQt方法獲取系統(tǒng)的當前時間

now = QtCore.QDateTime.currentDateTime()
now_time = now.toString(QtCore.Qt.ISODate)

將當前系統(tǒng)時間賦值給時間框中

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)

創(chuàng)建一個按鈕并設置清除關(guān)機任務單擊事件

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","請輸入關(guān)機時間"))
  self.label2.setText(_translate("page","日期:"))
  self.btn.setText(_translate("page","提交"))
  self.btn1.setText(_translate("page","清除"))
  self.text.setText(_translate("page","請設置關(guān)機時間!"))

添加關(guān)機計劃

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)機!" % datetime)
      #self.time.setDateTime('1')
    except:
      self.text.setText("設置失敗!")
  else:
    self.text.setText("日期設置錯誤!")

清除關(guān)機計劃

def cleart(self,page):
  try:
    os.system('shutdown -a')
    self.text.setText("已經(jīng)清除關(guān)機任務!")
  except:
    self.text.setText("清除任務失??!")  

if __name__=='__main__':

創(chuàng)建應用程序和對象

app = QtWidgets.QApplication(sys.argv)
page = QtWidgets.QWidget()
ui = guanji()
ui.pageShow(page)
sys.exit(app.exec_())

3、全部代碼

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))
    #創(chuàng)建一個提示
    page.setToolTip('這是Window關(guān)機工具')

    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))
    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)
    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.setToolTip('這里是提交按鈕')
    self.btn.move(110,110)

    self.btn1 = QtWidgets.QPushButton(page,clicked=self.cleart)
    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","請輸入關(guān)機時間"))
    self.label2.setText(_translate("page","日期:"))
    self.btn.setText(_translate("page","提交"))
    self.btn1.setText(_translate("page","清除"))
    self.text.setText(_translate("page","請設置關(guān)機時間!"))

  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
    if d>0:
      try:
        os.system('shutdown -s -t %d' % d)
        self.text.setText("電腦將在%s關(guān)機!" % datetime)
      except:
        self.text.setText("設置失??!")
    else:
      self.text.setText("日期設置錯誤!")

  def cleart(self,page):
    try:
      os.system('shutdown -a')
      self.text.setText("已經(jīng)清除關(guān)機任務!")
    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編寫一個自動關(guān)機程序”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識可以關(guān)注億速云網(wǎng)站,小編將為大家輸出更多高質(zhì)量的實用文章!

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI