📜  PyQt5 - 猜数字游戏(1)

📅  最后修改于: 2023-12-03 15:03:56.419000             🧑  作者: Mango

PyQt5 - 猜数字游戏

介绍

PyQt5 是一个基于 Python 的 GUI 编程工具包,它允许开发人员在 Python 语言中创建各种应用程序和用户界面。本篇文章将介绍如何使用 PyQt5 创建一个简单的猜数字游戏程序。

程序概述

这个猜数字游戏程序将随机生成一个数字,要求用户通过输入猜测的数字来尝试猜出生成的数字。程序将给出提示,告诉用户输入的数字是偏大还是偏小,直至用户猜中为止。

准备工作

在介绍具体代码之前,我们需要安装所需要的 Python 模块,其中包括 PyQt5 模块。此处假设已经安装好 Python 和 pip3,执行以下命令来安装所需模块:

pip3 install PyQt5
代码实现

程序主要由一个 GUI 类 GuessNumber 和一个启动程序的主函数 main() 组成。在 GuessNumber 类中,我们将定义程序界面和逻辑,包括生成随机数、显示输入对话框、显示消息框等等。

import random
import sys
from PyQt5.QtWidgets import QApplication, QWidget, QLabel, QPushButton, QLineEdit, QMessageBox, QInputDialog

class GuessNumber(QWidget):

    def __init__(self):
        super().__init__()
        self.init_ui()

    def init_ui(self):
        self.setWindowTitle('猜数字游戏')
        self.setGeometry(100, 100, 300, 200)

        self.label = QLabel('输入你的猜测:', self)
        self.label.move(20, 20)

        self.textbox_guess = QLineEdit(self)
        self.textbox_guess.move(110, 20)
        self.textbox_guess.resize(160, 20)

        self.btn_guess = QPushButton('猜', self)
        self.btn_guess.move(20, 50)
        self.btn_guess.clicked.connect(self.make_guess)

        self.btn_newgame = QPushButton('新游戏', self)
        self.btn_newgame.move(110, 50)
        self.btn_newgame.clicked.connect(self.new_game)

        self.msgbox = QMessageBox()

        self.show()

    def new_game(self):
        self.number = random.randint(1, 100)
        self.guesses = 0
        self.msgbox.setText('新游戏开始!')
        self.msgbox.exec_()

    def make_guess(self):
        try:
            guess = int(self.textbox_guess.text())
        except ValueError:
            self.msgbox.setText('请输入一个整数!')
            self.msgbox.exec_()
            return

        self.guesses += 1
        if guess == self.number:
            self.msgbox.setText(f'恭喜你,猜中了!\n总共猜了 {self.guesses} 次。')
            self.msgbox.exec_()
            self.new_game()
        elif guess < self.number:
            self.msgbox.setText('你猜小了!')
            self.msgbox.exec_()
        else:
            self.msgbox.setText('你猜大了!')
            self.msgbox.exec_()

在主函数中,我们将实例化 GuessNumber 类并执行 Qt5 的消息循环事件。

if __name__ == '__main__':
    app = QApplication(sys.argv)
    guess_number = GuessNumber()
    sys.exit(app.exec_())
运行程序

现在我们可以运行程序了。使用以下命令启动程序:

python guess_number.py

程序应该会显示一个窗口,要求输入猜测的数字。在每次猜测后,程序将提示是偏大还是偏小,直到用户猜中为止。

结论

在本篇文章中,我们介绍了如何使用 PyQt5 模块创建一个简单的猜数字游戏程序。使用 PyQt5,开发人员可以轻松创建各种应用程序和用户界面,为用户提供更好的使用体验。