python+pyqt5+qt designer小程式
阿新 • • 發佈:2019-01-05
相關配置:
Anaconda 4.2.0 (64-bit)
Python 3.5.2
qt designer設計介面如下:
轉換成py檔案後,csz.py程式如下:
# -*- coding: utf-8 -*- # Form implementation generated from reading ui file 'csz.ui' # # Created by: PyQt5 UI code generator 5.6 # # WARNING! All changes made in this file will be lost! from PyQt5 import QtCore, QtGui, QtWidgets class Ui_Form(object): def setupUi(self, Form): Form.setObjectName("Form") Form.resize(386, 252) self.gridLayout = QtWidgets.QGridLayout(Form) self.gridLayout.setObjectName("gridLayout") self.textEdit = QtWidgets.QTextEdit(Form) self.textEdit.setObjectName("textEdit") self.gridLayout.addWidget(self.textEdit, 0, 0, 1, 1) self.label = QtWidgets.QLabel(Form) font = QtGui.QFont() font.setFamily("Arial") font.setPointSize(18) self.label.setFont(font) self.label.setObjectName("label") self.gridLayout.addWidget(self.label, 1, 0, 1, 1) self.lineEdit = QtWidgets.QLineEdit(Form) self.lineEdit.setObjectName("lineEdit") self.gridLayout.addWidget(self.lineEdit, 2, 0, 1, 1) self.pushButton = QtWidgets.QPushButton(Form) self.pushButton.setObjectName("pushButton") self.gridLayout.addWidget(self.pushButton, 3, 0, 1, 1) self.retranslateUi(Form) QtCore.QMetaObject.connectSlotsByName(Form) def retranslateUi(self, Form): _translate = QtCore.QCoreApplication.translate Form.setWindowTitle(_translate("Form", "Form")) self.label.setText(_translate("Form", "請在下面輸入想要猜的數字:0-10")) self.pushButton.setText(_translate("Form", "我猜"))
新建一個run.py檔案,程式如下:
# -*- coding: utf-8 -*- from PyQt5.QtWidgets import QApplication, QWidget, QMessageBox from CaiShuZi.csz import Ui_Form import numpy as np import sys class mywindow(Ui_Form, QWidget): def __init__(self): super(mywindow, self).__init__() self.setupUi(self) self.num = np.random.randint(10) self.setWindowTitle('猜數字') print(self.num) def closeEvent(self, event): reply = QMessageBox.question(self, '確認', '確認退出嗎?', QMessageBox.Yes|QMessageBox.No) if reply == QMessageBox.Yes: event.accept() else: event.ignore() def gass(self): number = int(self.lineEdit.text()) # if self.lineEdit.text().isEmpty(): # QMessageBox.about(self, '警告', '必須輸入一個0-10的數字!') # self.lineEdit.clear() # self.lineEdit.setFocus() if number > self.num: QMessageBox.about(self, '結果', '猜大了!') self.textEdit.append(self.lineEdit.text()+' 猜大了!') self.lineEdit.clear() self.lineEdit.setFocus() elif number < self.num: QMessageBox.about(self, '結果', '猜小了!') self.textEdit.append(self.lineEdit.text()+' 猜小了!') self.lineEdit.clear() self.lineEdit.setFocus() elif number == self.num: QMessageBox.about(self, '結果', '恭喜你猜對了!') self.textEdit.append(self.lineEdit.text()) self.num = np.random.randint(10) print(self.num) self.lineEdit.clear() self.textEdit.clear() self.lineEdit.setFocus() else: pass if __name__ == '__main__': app = QApplication(sys.argv) w = mywindow() w.pushButton.clicked.connect(w.gass) w.show() sys.exit(app.exec_())
執行結果如下:
我曾經跨過山和大海,也穿過人山人海,我曾經擁有著的一切,轉眼都飄散如煙,我曾經失落失望失掉所有方向,直到看見平凡才是唯一的答案。
——韓寒《平凡之路》