
正文
pyqt5猜数小程序
提示:扫一扫查出行【扫一扫了解最新限行尾号】
复制提示
程序界面用qt设计师制作,并用pyuic5命令转换成form.py文件
#-*- coding:utf-8 -*-
from PyQt5.QtWidgets import QApplication,QWidget,QTableWidgetItem
import sys
from form import Ui_Form
import random
import time
class mywindow(QWidget,Ui_Form):
def __init__(self):
super().__init__()
self.setupUi(self)
self.btnstart.clicked.connect(self.start)
self.btnok.clicked.connect(self.ok)
self.btn0.clicked.connect(self.btn_0)
self.btn1.clicked.connect(self.btn_1)
self.btn2.clicked.connect(self.btn_2)
self.btn3.clicked.connect(self.btn_3)
self.btn4.clicked.connect(self.btn_4)
self.btn5.clicked.connect(self.btn_5)
self.btn6.clicked.connect(self.btn_6)
self.btn7.clicked.connect(self.btn_7)
self.btn8.clicked.connect(self.btn_8)
self.btn9.clicked.connect(self.btn_9)
self.btnreset.clicked.connect(self.reset) def start(self): #开始按钮事件
self.groupBox.setEnabled(True) #解除按钮群组禁用状态
self.table.clearContents() #清除表格内容
self.label_2.setText('电脑自动生成0到100之间的随机数,请猜')
self.random_number=random.randint(1,100)
self.label.clear() #清除标签内容
self.i=1 #计算步数
self.time_start=time.time() #程序运行的起始时间 #0-9各按钮的点击
def btn_0(self):
btn_i='' #此变量是对应按钮上的数字,用于在标签上显示数字
self.label_show(btn_i) def btn_1(self):
btn_i=''
self.label_show(btn_i) def btn_2(self):
btn_i=''
self.label_show(btn_i) def btn_3(self):
btn_i=''
self.label_show(btn_i) def btn_4(self):
btn_i=''
self.label_show(btn_i) def btn_5(self):
btn_i=''
self.label_show(btn_i) def btn_6(self):
btn_i=''
self.label_show(btn_i) def btn_7(self):
btn_i=''
self.label_show(btn_i) def btn_8(self):
btn_i=''
self.label_show(btn_i) def btn_9(self):
btn_i=''
self.label_show(btn_i) def label_show(self,btn_i):
if self.label.text()=='小了' or self.label.text()=='大了':
self.label.clear()
self.i+=1
text=self.label.text()
self.label.setText(text+btn_i) def ok(self): #确定按钮事件
label_text=int(self.label.text()) #将标签上的数字转换为数字类型,便于比较
table_data=QTableWidgetItem(self.label.text()) #表格内容必须先转换一下格式,才能插入表格
self.table.setItem(self.i-1,0,table_data) #表格显示步数 if label_text == self.random_number: #标签上的数字和真实随机数比较
self.label.setText('恭喜过关')
self.table.setItem(self.i-1,1,QTableWidgetItem(self.label.text())) #表格显示过关
time_end=time.time()
spend_time=int(time_end-self.time_start)
self.label_2.setText('你一共用了{}秒,用了{}步'.format(spend_time, self.i))
elif label_text<self.random_number:
self.label.setText('小了')
self.table.setItem(self.i-1,1,QTableWidgetItem(self.label.text())) #表格显示小了
else:
self.label.setText('大了')
self.table.setItem(self.i-1,1,QTableWidgetItem(self.label.text())) #表格显示大了 def reset(self): #重置按钮
text=self.label.text()
self.label.setText(text[0:-1]) #原标签内容减去最后一个字母,再显示出来 if __name__=='__main__':
app=QApplication(sys.argv)
w=mywindow()
w.show()
app.exec()





