怎么用PyQt5制作一个猜数字小游戏
发表于:2025-11-10 作者:千家信息网编辑
千家信息网最后更新 2025年11月10日,今天小编给大家分享一下怎么用PyQt5制作一个猜数字小游戏的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我
千家信息网最后更新 2025年11月10日怎么用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制作一个猜数字小游戏"这篇文章的所有内容,感谢各位的阅读!相信大家阅读完这篇文章都有很大的收获,小编每天都会为大家更新不同的知识,如果还想学习更多的知识,请关注行业资讯频道。
数字
目标
最大
最小
模块
集中营
主题
代码
公众
函数
样式
知识
篇文章
输入
就是
最大值
生成
小游戏
制作
对了
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
signal软件开发者
美军网络安全实验室
h5小游戏是什么软件开发的
软件开发所需能力
维护数据库
annovar数据库下载
首都网络安全日绘画
福建诚信网络技术服务项目
湖南三湘银行软件开发中心
管理系统数据库实训心得
pb oracle数据库
选择联机数据库的标准首先是
北京亚红网络技术
数据库日期格式非法
服务器邀请码
山东大学软件开发在哪个校区
迷你世界服务器管理员是谁
网络安全与信息技术中心
乡镇网络安全安全管理制度
dnf单机数据库版本
广州分布式服务器介绍
公安局人脸数据库怎么更新
git服务器搭建mac
ncbi的选择数据库
嘉盛 mt4服务器
冬奥会网络安全值守人员证书
3dfd数据库
网络安全十三五发展规划
学习网络安全用不用考研
辽宁dns服务器地址云空间