怎么用PyQt5制作一个猜数字小游戏
发表于:2025-02-04 作者:千家信息网编辑
千家信息网最后更新 2025年02月04日,今天小编给大家分享一下怎么用PyQt5制作一个猜数字小游戏的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我
千家信息网最后更新 2025年02月04日怎么用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安全错误
数据库的锁怎样保障安全
数据库实时录入
数据库怎么导出dll
软件开发教程图片
西藏智慧城管软件开发哪儿好
服务器每次都要登录怎么办
江苏网络安全员考试报名
双路四核塔式服务器
两个数据库的表关联查询
深圳手机直播app软件开发
政府软件开发服务好态度好
舞龙网络技术咨询有限公司
有线电视网络安全宣传
网络安全技术保障工作职责
云技术与数据库
网络安全管理和使用不规范
bpo软件开发
2014 数据库 均衡负债
魔兽怀旧付费转服可以选服务器吗
国际网络安全形势分析
bim 需要软件开发人员吗
tbox软件开发工程师工资
产品装箱 数据库设计
四川航空笔软件开发面试
网络安全绘画为主题的作品
医院网络安全自检自查表
驷惠软件服务器
李沧区分销软件开发产品
成都游狐网络技术公司
源代码管理与服务器svn
软件开发工时单价