程序界面用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='0' #此变量是对应按钮上的数字,用于在标签上显示数字 self.label_show(btn_i) def btn_1(self): btn_i='1' self.label_show(btn_i) def btn_2(self): btn_i='2' self.label_show(btn_i) def btn_3(self): btn_i='3' self.label_show(btn_i) def btn_4(self): btn_i='4' self.label_show(btn_i) def btn_5(self): btn_i='5' self.label_show(btn_i) def btn_6(self): btn_i='6' self.label_show(btn_i) def btn_7(self): btn_i='7' self.label_show(btn_i) def btn_8(self): btn_i='8' self.label_show(btn_i) def btn_9(self): btn_i='9' 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()