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()
pyqt5猜数小程序的更多相关文章
- Java数组重修,猜数小游戏改进和打印正三角形
数组重修,猜数小游戏 要求:从键盘输入一个数,判断数组是否包含此数,运用随机数 我们可能会这样写 import java.util.Random; import java.util.Scanner; ...
- 常用Java API之Ramdom--用代码模拟猜数小游戏
常用Java API之Ramdom Ramdom类用来生成随机数字.使用起来也是三个步骤: 1.导包 import java.util.Random; 2.创建 Random r = new Rand ...
- jsp-简单的猜数小游戏
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"% ...
- pyqt5猜数游戏
电脑随机生成4个互不相等的数,你猜. 1:你猜的数和正确答案相比,位置正确的个数 2:你猜的数虽然在正确答案中,但位置不对,它的个数. 代码如下: #!/usr/bin/env python # -* ...
- Python猜数小游戏
使用random变量随机生成一个1到100之间的数 采集用户所输入的数字,如果输入的不符合要求会让用户重新输入. 输入符合要求,游戏开始.如果数字大于随机数,输出数字太大:如果小于随机数,输出数字太小 ...
- python开发_tkinter_自己做的猜数字小程序
读到这篇文章[python 3.3下结合tkinter做的猜数字程序]的时候,就复制了代码,在自己机器上面跑了一下 源程序存在一个缺陷: 即当用户答对了以后,用户再点击'猜'按钮,最上面的提示标签还会 ...
- 【Python】猜数小游戏
有点沙雕 temp=input("猜猜我心里想的是哪个数字?") guess=int (temp) if guess==8: print("你是我肚里的蛔虫么?" ...
- pyqt5 做的小程序,可以用来UI做个小demo
#!/usr/bin/python3# -*- coding: utf-8 -*- """ZetCode PyQt5 tutorial This program crea ...
- 【Python】猜数小游戏(文件操作)
人生苦短,我用Python 关键词 1.多用户 2.字典记录所有成绩 3.每次游戏轮数&总游戏次数&平均每次游戏需要多少轮 字典Dictionary.列表List.元组Tuple差异化 ...
随机推荐
- 微服务深入浅出(7)-- 网关路由Zuul
Zuul用于构建边界服务,致力于动态路由,过滤,监控,弹性伸缩和安全等方向. 1.Zuul+Ribbon+Eureka结合,可以实现智能路由和负载均衡 2.网关将所有服务的API接口统一聚合统一暴露 ...
- 对某道ctf的一点点记录
题目:http://ctf5.shiyanbar.com/web/pcat/index.php 是一道注入的题,主要利用了offset 和 group by with rollup的知识 1.offs ...
- python练习-Socket实现远程cmd命令
需求:基于tcp的套接字实现远程执行命令的操作 代码示例: # 编辑者:闫龙 #Client端部分 import socket #导入骚凯特模块 CmdObj = socket.socket(sock ...
- webpack构建react多页面应用
写这个的初衷是很难找一个简洁的项目脚手架,很多脚手架都有很多依赖,光看依赖就要很久,所以自己参照网上的内容,弄个这么一个简单的多页面的脚手架. 利用creat-react-app 新建一个react应 ...
- 串口流控制详解(CTS/RTS,DTR/DSR)
1 首先看下关于流控相关的几个端口的解释如下图 除了必要的地(GND)要连接外,其它连如下 步骤阅读 2 计算机和猫(MODEM)的连接 步骤阅读 步骤阅读 3 计算机和非猫的连接(null mod ...
- linux sigaction 函数 用法释义
使用 sigaction 函数: signal 函数的使用方法简单,但并不属于 POSIX 标准,在各类 UNIX 平台上的实现不尽相同,因此其用途受 到了一定的限制.而 POSIX 标准定义的信号处 ...
- ps查看CPU和内存占用前10的进程
内存增序 ps aux --sort rss 内存减序 ps aux --sort -rss cpu增序 ps auxw --sort=%cpu cpu减序 ps auxw --sort=-%cpu ...
- MySQL权限操作:Grant、Revoke
数据库操作: 创建数据库.创建表——CREATE 删除数据库.删除表——DROP 删除表内容——TRUNCATE.DELETE(后者效率低.一行一行地删除记录) 查询数据库.查询表——SELECT 插 ...
- UE简单配置
1 头上显示文件位置和名称,视图->视图列表——>打开文件标签,在右面点放大 2 函数列表,视图->视图列表——>打开文件标签
- linux 安装 Elasticsearch6.4.0详细步骤以及问题解决方案
1.jdk 安装 参考资料:https://www.cnblogs.com/shihaiming/p/5809553.html 2.elasticsearch 安装 下载:https://artifa ...