pyqt5猜数小程序
2024-09-04 03:17:30
程序界面用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()
最新文章
- kettle系列-我的开源kettle管理平台[kettle-manager]介绍
- 一鼓作气 博客--第一篇 note1
- Linux服务器中木马(肉鸡)手工清除方法
- MVC5 + EF6 完整入门教程三
- 快速创建maven 工程:simple java工程,webapp
- UNIX 信号基本概念
- MAC终端显示隐藏文件,关闭显示
- New Start!
- 网易云课堂_程序设计入门-C语言_第三周:循环_2数字特征值
- ReplaceGoogleCDN:将 Google CDN 更换国家
- 计算CPU的MIPS
- VWmare设置挂载目录
- Oracle分组小计、总计示例(grouping sets的使用)
- 站在DevOps肩膀上的TestOps(一)
- Python发邮件的小脚本
- Second LearningConvolutionalNeuralNetworksforGraphs Experience
- ENC28J60学习笔记——第1部分
- UVA 1103 How Many O&#39;s?
- Statement与PreparedStatement
- 【祥哥带你玩HoloLens开发】了解如何实现远程主机为HoloLens实时渲染
热门文章
- bzoj千题计划164:bzoj5123: 线段树的匹配
- github 新创建repositories
- python的数字IP实现
- HDU 2087 剪花布条 (KMP 不允许重叠的匹配)
- 25、LinkedList特有方法
- glut glew区别
- 2016.6.19——Length of Last Word
- zookeeper集群查看状态时报错Error contacting service. It is probably not running的一些坑以及解决办法
- ARC073E Ball Coloring
- docker stack 部署 filebeat