文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

怎么用PyQt5制作一个猜数字小游戏

2023-06-29 08:37

关注

今天小编给大家分享一下怎么用PyQt5制作一个猜数字小游戏的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。

开始之前,直接来看一下实现后的效果。

怎么用PyQt5制作一个猜数字小游戏

将PyQt5的相关模块直接导入即可。

from PyQt5.QtGui import *from PyQt5.QtCore import *from PyQt5.QtWidgets import *

为了照顾一下新关注的童鞋,这里介绍一下PyQt5的安装,还是采用pip的安装方式。

pip install PyQt5

将准备好的样式导入到代码块中。

# 主题样式模块引用from QCandyUi import CandyWindow

文件和随机数相关的模块导入进来。

import sysimport random

界面编写函数 init_ui,初始化UI界面及页面布局代码块。

 def init_ui(self):        self.setWindowTitle('猜数字游戏  公众号:[Python 集中营]')        self.setWindowIcon(QIcon('数字.ico'))        self.setFixedSize(500, 350)        self.msg = QLabel()        self.msg.setText('猜数字游戏')        self.msg.setStyleSheet(            'font-size:50px;text-align:center;font-weight:bold;font-family:"Microsoft JhengHei";')        self.msg.setAlignment(Qt.AlignCenter)        self.in_num = QLineEdit()        self.in_num.setPlaceholderText('请输入目标数字')        self.in_num.setAlignment(Qt.AlignCenter)        self.in_num_btn = QPushButton()        self.in_num_btn.setText('就是它了')        self.in_num_btn.clicked.connect(self.in_num_btn_click)        self.tar_num_btn = QPushButton()        self.tar_num_btn.setText('显示数字')        self.tar_num_btn.clicked.connect(self.tar_num_btn_click)        self.tar_num = QLabel()        self.tar_num.setText('#####')        self.tar_num.setFixedWidth(50)        self.generate_num_btn = QPushButton()        self.generate_num_btn.setText('  生成目标数字  ')        self.generate_num_btn.clicked.connect(self.generate_num_btn_click)        hbox = QHBoxLayout()        hbox.addWidget(self.tar_num)        hbox.addWidget(self.tar_num_btn)        hbox.addStretch(1)        hbox.addWidget(self.generate_num_btn)        vbox = QVBoxLayout()        vbox.addStretch(1)        vbox.addWidget(self.msg)        vbox.addWidget(self.in_num)        vbox.addWidget(self.in_num_btn)        vbox.addStretch(1)        vbox.addLayout(hbox)        self.setLayout(vbox)

槽函数 generate_num_btn_click,用于生成猜数字游戏的目标数字。

 def generate_num_btn_click(self):        tar_num = random.randint(1, 99)        self.num = tar_num        # 重置最大最小值        self.max_num = 100  # 当前最大值        self.min_num = 0  # 当前最小值

槽函数 tar_num_btn_click,用于显示或隐藏目标数字。

  def tar_num_btn_click(self):        if self.num != 0 and self.tar_num_btn.text().strip() == '显示数字':            self.tar_num.setText(str(self.num))            self.tar_num_btn.setText('隐藏数字')        elif self.tar_num_btn.text().strip() == '隐藏数字':            self.tar_num.setText('#####')            self.tar_num_btn.setText('显示数字')

槽函数 in_num_btn_click,用于处理猜数字实现的主要代码逻辑。

 def in_num_btn_click(self):        try:            in_num = int(self.in_num.text().strip())            if in_num < self.min_num or in_num >= self.max_num:                pass            else:                if self.num == 0:                    self.msg.setText('没有目标数字')                elif in_num == self.num:                    self.msg.setText('恭喜你,猜对了')                else:                    if in_num < self.num:                        self.msg.setText(str(in_num) + ' - ' + str(self.max_num))                        self.min_num = in_num                    elif in_num > self.num:                        self.msg.setText(str(self.min_num) + ' - ' + str(in_num))                        self.max_num = in_num        except:            self.msg.setText('请输入数字')

最后,通过调用主题模块的蓝色主题样式是整个App变得漂亮。

CandyWindow.createWindow(GuessNumber(), theme='blue', title='猜数字游戏  公众号:[Python 集中营]',                                 ico_path='数字.ico')

完整代码

# -*- coding:utf-8 -*-# @author Python 集中营# @date 2022/2/10# @file test1.py# done# GUI猜数字游戏from PyQt5.QtGui import *from PyQt5.QtCore import *from PyQt5.QtWidgets import *# 主题样式模块引用from QCandyUi import CandyWindowimport sysimport randomclass GuessNumber(QWidget):    def __init__(self):        super(GuessNumber, self).__init__()        self.num = 0  # 目标数字        self.max_num = 100  # 当前最大值        self.min_num = 0  # 当前最小值        self.init_ui()    def init_ui(self):        self.setWindowTitle('猜数字游戏  公众号:[Python 集中营]')        self.setWindowIcon(QIcon('数字.ico'))        self.setFixedSize(500, 350)        self.msg = QLabel()        self.msg.setText('猜数字游戏')        self.msg.setStyleSheet(            'font-size:50px;text-align:center;font-weight:bold;font-family:"Microsoft JhengHei";')        self.msg.setAlignment(Qt.AlignCenter)        self.in_num = QLineEdit()        self.in_num.setPlaceholderText('请输入目标数字')        self.in_num.setAlignment(Qt.AlignCenter)        self.in_num_btn = QPushButton()        self.in_num_btn.setText('就是它了')        self.in_num_btn.clicked.connect(self.in_num_btn_click)        self.tar_num_btn = QPushButton()        self.tar_num_btn.setText('显示数字')        self.tar_num_btn.clicked.connect(self.tar_num_btn_click)        self.tar_num = QLabel()        self.tar_num.setText('#####')        self.tar_num.setFixedWidth(50)        self.generate_num_btn = QPushButton()        self.generate_num_btn.setText('  生成目标数字  ')        self.generate_num_btn.clicked.connect(self.generate_num_btn_click)        hbox = QHBoxLayout()        hbox.addWidget(self.tar_num)        hbox.addWidget(self.tar_num_btn)        hbox.addStretch(1)        hbox.addWidget(self.generate_num_btn)        vbox = QVBoxLayout()        vbox.addStretch(1)        vbox.addWidget(self.msg)        vbox.addWidget(self.in_num)        vbox.addWidget(self.in_num_btn)        vbox.addStretch(1)        vbox.addLayout(hbox)        self.setLayout(vbox)    def generate_num_btn_click(self):        tar_num = random.randint(1, 99)        self.num = tar_num        # 重置最大最小值        self.max_num = 100  # 当前最大值        self.min_num = 0  # 当前最小值    def tar_num_btn_click(self):        if self.num != 0 and self.tar_num_btn.text().strip() == '显示数字':            self.tar_num.setText(str(self.num))            self.tar_num_btn.setText('隐藏数字')        elif self.tar_num_btn.text().strip() == '隐藏数字':            self.tar_num.setText('#####')            self.tar_num_btn.setText('显示数字')    def in_num_btn_click(self):        try:            in_num = int(self.in_num.text().strip())            if in_num < self.min_num or in_num >= self.max_num:                pass            else:                if self.num == 0:                    self.msg.setText('没有目标数字')                elif in_num == self.num:                    self.msg.setText('恭喜你,猜对了')                else:                    if in_num < self.num:                        self.msg.setText(str(in_num) + ' - ' + str(self.max_num))                        self.min_num = in_num                    elif in_num > self.num:                        self.msg.setText(str(self.min_num) + ' - ' + str(in_num))                        self.max_num = in_num        except:            self.msg.setText('请输入数字')if __name__ == '__main__':    app = QApplication(sys.argv)    w = CandyWindow.createWindow(GuessNumber(), theme='blue', title='猜数字游戏  公众号:[Python 集中营]',                                 ico_path='数字.ico')    w.show()    sys.exit(app.exec_())

以上就是“怎么用PyQt5制作一个猜数字小游戏”这篇文章的所有内容,感谢各位的阅读!相信大家阅读完这篇文章都有很大的收获,小编每天都会为大家更新不同的知识,如果还想学习更多的知识,请关注编程网行业资讯频道。

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯