怎么用PyQt5制作一个猜数字小游戏
导读:本文共3648字符,通常情况下阅读需要12分钟。同时您也可以点击右侧朗读,来听本文内容。按键盘←(左) →(右) 方向键可以翻页。
摘要: 开始之前,直接来看一下实现后的效果。将PyQt5的相关模块直接导入即可。fromPyQt5.QtGuiimport*fromPyQt5.QtCoreimport*fromPyQt5.QtWidgetsimport*为了照顾一下新关注的童鞋,这里介绍一下PyQt5的安装,还是采用pip的安装方式。pipinstallPyQt5将准备好的样式导入到代码块中。#主... ...
音频解说
目录
(为您整理了一些要点),点击可以直达。开始之前,直接来看一下实现后的效果。
将PyQt5的相关模块直接导入即可。
fromPyQt5.QtGuiimport*fromPyQt5.QtCoreimport*fromPyQt5.QtWidgetsimport*
为了照顾一下新关注的童鞋,这里介绍一下PyQt5的安装,还是采用pip的安装方式。
pipinstallPyQt5
将准备好的样式导入到代码块中。
#主题样式模块引用fromQCandyUiimportCandyWindow
文件和随机数相关的模块导入进来。
importsysimportrandom
界面编写函数 init_ui,初始化UI界面及页面布局代码块。
definit_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:"MicrosoftJhengHei";')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,用于生成猜数字游戏的目标数字。
defgenerate_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,用于显示或隐藏目标数字。
deftar_num_btn_click(self):ifself.num!=0andself.tar_num_btn.text().strip()=='显示数字':self.tar_num.setText(str(self.num))self.tar_num_btn.setText('隐藏数字')elifself.tar_num_btn.text().strip()=='隐藏数字':self.tar_num.setText('#####')self.tar_num_btn.setText('显示数字')
槽函数 in_num_btn_click,用于处理猜数字实现的主要代码逻辑。
defin_num_btn_click(self):try:in_num=int(self.in_num.text().strip())ifin_num<self.min_numorin_num>=self.max_num:passelse:ifself.num==0:self.msg.setText('没有目标数字')elifin_num==self.num:self.msg.setText('恭喜你,猜对了')else:ifin_num<self.num:self.msg.setText(str(in_num)+'-'+str(self.max_num))self.min_num=in_numelifin_num>self.num:self.msg.setText(str(self.min_num)+'-'+str(in_num))self.max_num=in_numexcept:self.msg.setText('请输入数字')
最后,通过调用主题模块的蓝色主题样式是整个App变得漂亮。
CandyWindow.createWindow(GuessNumber(),theme='blue',title='猜数字游戏公众号:[Python集中营]',ico_path='数字.ico')
完整代码
#-*-coding:utf-8-*-#@authorPython集中营#@date2022/2/10#@filetest1.py#done#GUI猜数字游戏fromPyQt5.QtGuiimport*fromPyQt5.QtCoreimport*fromPyQt5.QtWidgetsimport*#主题样式模块引用fromQCandyUiimportCandyWindowimportsysimportrandomclassGuessNumber(QWidget):def__init__(self):super(GuessNumber,self).__init__()self.num=0#目标数字self.max_num=100#当前最大值self.min_num=0#当前最小值self.init_ui()definit_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:"MicrosoftJhengHei";')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)defgenerate_num_btn_click(self):tar_num=random.randint(1,99)self.num=tar_num#重置最大最小值self.max_num=100#当前最大值self.min_num=0#当前最小值deftar_num_btn_click(self):ifself.num!=0andself.tar_num_btn.text().strip()=='显示数字':self.tar_num.setText(str(self.num))self.tar_num_btn.setText('隐藏数字')elifself.tar_num_btn.text().strip()=='隐藏数字':self.tar_num.setText('#####')self.tar_num_btn.setText('显示数字')defin_num_btn_click(self):try:in_num=int(self.in_num.text().strip())ifin_num<self.min_numorin_num>=self.max_num:passelse:ifself.num==0:self.msg.setText('没有目标数字')elifin_num==self.num:self.msg.setText('恭喜你,猜对了')else:ifin_num<self.num:self.msg.setText(str(in_num)+'-'+str(self.max_num))self.min_num=in_numelifin_num>self.num:self.msg.setText(str(self.min_num)+'-'+str(in_num))self.max_num=in_numexcept: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_())
</div> <div class="zixun-tj-product adv-bottom"></div> </div> </div> <div class="prve-next-news">
本文:
怎么用PyQt5制作一个猜数字小游戏的详细内容,希望对您有所帮助,信息来源于网络。