1. 程式人生 > >python+pyqt5+qt designer小程式

python+pyqt5+qt designer小程式

相關配置:

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

執行結果如下:

       我曾經跨過山和大海,也穿過人山人海,我曾經擁有著的一切,轉眼都飄散如煙,我曾經失落失望失掉所有方向,直到看見平凡才是唯一的答案。
——韓寒《平凡之路》