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='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()

 

 

 
 

转载于:https://www.cnblogs.com/jmlovepython/p/8446907.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值