저에게 Python이라는 새로운 친구를 소개한 것은 처음 몇 명의 크롤러였습니다. 비록 서로 알고 지낸 지 며칠밖에 되지 않았지만 설명할 수 없는 암묵적인 이해감을 느꼈습니다. 다른 곳에서 아이디어를 찾을 수 없을 때마다 Python에서 항상 솔루션을 찾을 수 있습니다. 자동종료는 대용량 파일을 다운받거나 프로그램을 실행할 때 사용할 수 있습니다.. 그냥 윈도우 자동종료를 위한 작은 프로그램을 작성해봤습니다. 프로그램이 너무 간단해서 그냥 장난으로 치부해보겠습니다. 아래 텍스트:
#ui 제작:
평소와 같이 저자는 Qt를 사용하여 label, label_2, label_3, lable_4, lineEdit, lineEdit_2, pushButton 구성 요소를 포함한 필수 UI를 제작했습니다. 레이아웃은 다음과 같습니다
두 줄의 편집은 사용자가 원하는 종료 시간을 입력할 때까지 기다립니다. 다음 Label은 작업 후 반환 정보를 표시하는 데 사용됩니다. pushButton은 명령을 제출하는 데 사용됩니다. UI 제작이 완료되었습니다.
ui를 py 파일로 변환:
여기서 작성자는 PyQt5를 설치하고 환경 변수를 추가했습니다. 따라서 변환된 cmd 명령(ui가 있는 디렉터리로 cd):
pyuic5 shut.ui -o shut.py
성공적으로 실행되면 ui가 있는 디렉터리에 shutdown.py 파일이 생성됩니다.
#표시 창:
직접 생성된 py 파일을 실행할 때 창을 볼 수 없습니다. 창을 표시하려면 필요한 내용을 추가해야 합니다.
코드 추가
import sys
를 맨 위에 추가하고 마지막으로
if name == 'main': app = QtWidgets.QApplication(sys.argv) Form = QtWidgets.QWidget() ui = Ui_x()//其中Ui_x为生成的class名 ui.setupUi(Form) Form.show() sys.exit(app.exec_())
를 추가한 후 shutdown.py를 실행하여 창을 확인합니다.
#기능 구현:
Windows가 자동으로 종료되도록 하려면 프로그램에서 원하는 기능을 생각해 보세요. cmd 명령은 좋은 선택입니다. 그래서 저자는 Python에서 cmd 명령을 실행하는 방법을 찾았습니다.
os.popen('at 22:30 shutdown -s')
cmd를 호출하고 명령을 실행합니다. 그 중 22번과 30번은 사용자 입력을 기다리는 데이터이다. 따라서 해당 h와 m은 두 줄의 편집에서 얻은 합법적인 숫자로 대체되어야 합니다. lineEdit의 내용을 가져오는 메서드를 사용합니다.
h = self.lineEdit.text() m = self.lineEdit_2.text()
그런 다음 실행 명령의 시간과 분을 h, m으로 바꿉니다.
그런 다음 pushButton 부분이 있습니다. pushButton 이벤트 클릭에 대한 리스너를 추가합니다.
self.pushButton = QtWidgets.QPushButton(shut,clicked=self.sd)
그 중 self.sd는 이벤트가 발생한 후 수행해야 하는 작업입니다.
#완전 코드:
반품 정보 부분에 대해서는 일부 핵심 부분만 설명하였으므로 여기서는 자세히 설명하지 않겠습니다. Windows 자동 종료에 대한 전체 코드는 다음과 같습니다.
# -*- coding: utf-8 -*- # Form implementation generated from reading ui file 'shut.ui' # # Created: Mon Mar 20 18:10:31 2017 # by: PyQt5 UI code generator 5.2.1 # # WARNING! All changes made in this file will be lost! import sys import os from PyQt5 import QtCore, QtGui, QtWidgets class Ui_shut(object): flag = True def setupUi(self, shut): shut.setObjectName("shut") shut.resize(411, 170) shut.setFixedSize(411,170) self.label = QtWidgets.QLabel(shut) self.label.setGeometry(QtCore.QRect(40, 50, 41, 51)) self.label.setFont(QtGui.QFont("Roman times",10,QtGui.QFont.Bold)) self.label.setObjectName("label") self.lineEdit = QtWidgets.QLineEdit(shut) self.lineEdit.setGeometry(QtCore.QRect(70, 50, 71, 41)) self.lineEdit.setFont(QtGui.QFont("Roman times",10,QtGui.QFont.Bold)) self.lineEdit.setObjectName("lineEdit") self.label_2 = QtWidgets.QLabel(shut) self.label_2.setGeometry(QtCore.QRect(150, 60, 31, 31)) self.label_2.setFont(QtGui.QFont("Roman times",10,QtGui.QFont.Bold)) self.label_2.setObjectName("label_2") self.lineEdit_2 = QtWidgets.QLineEdit(shut) self.lineEdit_2.setGeometry(QtCore.QRect(180, 50, 71, 41)) self.lineEdit_2.setFont(QtGui.QFont("Roman times",10,QtGui.QFont.Bold)) self.lineEdit_2.setObjectName("lineEdit_2") self.label_3 = QtWidgets.QLabel(shut) self.label_3.setGeometry(QtCore.QRect(260, 60, 31, 31)) self.label_3.setFont(QtGui.QFont("Roman times",10,QtGui.QFont.Bold)) self.label_3.setObjectName("label_3") self.pushButton = QtWidgets.QPushButton(shut,clicked=self.sd) self.pushButton.setGeometry(QtCore.QRect(290, 50, 101, 41)) self.pushButton.setFont(QtGui.QFont("Roman times",10,QtGui.QFont.Bold)) self.pushButton.setObjectName("pushButton") self.label_4 = QtWidgets.QLabel(shut) self.label_4.setGeometry(QtCore.QRect(0, 120, 411, 31)) self.label_4.setFont(QtGui.QFont("Roman times",10,QtGui.QFont.Bold)) self.label_4.setObjectName("label_4") self.retranslateUi(shut) QtCore.QMetaObject.connectSlotsByName(shut) def retranslateUi(self, shut): _translate = QtCore.QCoreApplication.translate shut.setWindowTitle(_translate("shut", "Auto Shutdown by dearvee")) self.label.setText(_translate("shut", "At:")) self.label_2.setText(_translate("shut", "H")) self.label_3.setText(_translate("shut", "M")) self.label_4.setText(_translate("shut", "Please input time of shutdown~")) self.pushButton.setText(_translate("shut", "Set")) def sd(self,shut): h = self.lineEdit.text() m = self.lineEdit_2.text() if self.flag: self.flag = False try: os.popen('at '+h+':'+m+' shutdown -s') self.label_4.setText('Success! the system will shutdown at today '+h+':'+m+'.') self.pushButton.setText('Remove all') self.lineEdit.clear() self.lineEdit_2.clear() except: self.label_4.setText('Something is wrong~') else: self.flag = True try: os.popen('at /delete /yes') self.label_4.setText('Success! already removed~') self.pushButton.setText('Set') self.lineEdit.clear() self.lineEdit_2.clear() except: self.label_4.setText('Something is wrong~') if name == 'main': app = QtWidgets.QApplication(sys.argv) Form = QtWidgets.QWidget() ui = Ui_shut() ui.setupUi(Form) Form.show() sys.exit(app.exec_())
실행 후 아래와 같은 작업 창이 나타납니다.
# 실행 효과:
shut.py를 실행하고 12와 53을 입력하고 설정을 클릭합니다. 그런 다음 작업 계획을 확인합니다:
작업이 이미 계획되어 있다는 것입니다. 작업 계획을 새로 고치려면 제거를 클릭합니다.
작업이 성공적으로 제거되고 기능이 구현되었습니다.
물론 사용자가 Python을 설치하고 관련 구성 요소를 설치한 경우에만 실행할 수 있습니다. 어떤 창에서든 사용하려면 다음 작업이 필요합니다.
#Packaging:
저자는 패키징을 위해 Python의 Pyinstaller 구성 요소를 사용합니다. shutdown.py가 있는 디렉터리로 cd한 후 cmd 명령
pyinstaller -w shut.py
을 실행합니다. 이때 shutdown.py가 있는 디렉터리에 dist 폴더가 생성됩니다. 생성된 exe 경로. dist>>shut (파이썬 소스코드 파일명)>>shut.exe 모든 것이 잘 되었다면, shutdown.exe를 더블클릭하면 이전 소스코드와 동일한 창과 동작이 표시됩니다. 이런 방식으로 전체 종료 디렉토리를 친구에게 보낼 수 있습니다. 그런 다음 shutdown.exe를 두 번 클릭하여 프로그램을 사용할 수 있습니다.
위 내용은 Python에서 Windows 예약 종료 기능을 구현하기 위한 예제 코드의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!