PyQt5 - 猜数字小游戏

代码

# -*- coding: utf-8 -*-
# Time      :2021/9/11 17:20


import sys
from PyQt5.QtWidgets import QApplication, QWidget, QPushButton, QMessageBox, QLineEdit
from PyQt5.QtGui import QIcon
from random import randint


class Example(QWidget):

    def __init__(self):
        super().__init__()
        self.initUI()
        self.num = randint(1, 100)

    def initUI(self):
        self.setGeometry(300, 300, 600, 600)
        self.setWindowTitle('学点编程吧--猜数字')
        self.setWindowIcon(QIcon('./ico/Porsche.ico'))

        self.bt1 = QPushButton('确定猜测', self)
        self.bt1.setGeometry(250, 300, 100, 50)
        self.bt1.setToolTip('<b>点击这里猜数字</b>')
        self.bt1.clicked.connect(self.showMessage)

        self.text = QLineEdit('在这里输入数字', self)
        self.text.setToolTip('<b>这里输入你的猜测</b>')

        self.text.selectAll()
        self.text.setFocus()  # ==> 获得光标焦点

        self.text.setGeometry(100, 50, 400, 30)

    def showMessage(self):
        try:
            guessnumber = int(self.text.text())
            print("答案: {}".format(guessnumber))
        except Exception as e:
            print("ERROR ==> {}".format(e))
            self.text.setFocus()
            return

        if guessnumber > self.num:
            QMessageBox.about(self, 'useless', '猜大了')
            self.text.setFocus()  # ==> 光标焦点回到输入框
        elif guessnumber < self.num:
            QMessageBox.about(self, 'useless', '猜小了')
            self.text.setFocus()
        else:
            QMessageBox.about(self, 'useless', '答对了,进入下一轮!')
            self.num = randint(1, 100)  # ==> 光标焦点回到输入框
            self.text.clear()  # ==> 清空输入框
            self.text.setFocus()  # ==> 光标焦点回到输入框

    # 关闭事件
    def closeEvent(self, event):  # ==> event: 事件
        reply = QMessageBox.question(self, 'useless', '确认退出吗', QMessageBox.Yes | QMessageBox.No, QMessageBox.No)
        print("reply: {}".format(reply))
        if reply == QMessageBox.Yes:
            event.accept()
        else:
            event.ignore()


if __name__ == '__main__':
    app = QApplication(sys.argv)
    main = Example()
    main.show()
    sys.exit(app.exec_())

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值