程序界面用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猜数小程序的更多相关文章

  1. Java数组重修,猜数小游戏改进和打印正三角形

    数组重修,猜数小游戏 要求:从键盘输入一个数,判断数组是否包含此数,运用随机数 我们可能会这样写 import java.util.Random; import java.util.Scanner; ...

  2. 常用Java API之Ramdom--用代码模拟猜数小游戏

    常用Java API之Ramdom Ramdom类用来生成随机数字.使用起来也是三个步骤: 1.导包 import java.util.Random; 2.创建 Random r = new Rand ...

  3. jsp-简单的猜数小游戏

    <%@ page language="java" import="java.util.*" pageEncoding="utf-8"% ...

  4. pyqt5猜数游戏

    电脑随机生成4个互不相等的数,你猜. 1:你猜的数和正确答案相比,位置正确的个数 2:你猜的数虽然在正确答案中,但位置不对,它的个数. 代码如下: #!/usr/bin/env python # -* ...

  5. Python猜数小游戏

    使用random变量随机生成一个1到100之间的数 采集用户所输入的数字,如果输入的不符合要求会让用户重新输入. 输入符合要求,游戏开始.如果数字大于随机数,输出数字太大:如果小于随机数,输出数字太小 ...

  6. python开发_tkinter_自己做的猜数字小程序

    读到这篇文章[python 3.3下结合tkinter做的猜数字程序]的时候,就复制了代码,在自己机器上面跑了一下 源程序存在一个缺陷: 即当用户答对了以后,用户再点击'猜'按钮,最上面的提示标签还会 ...

  7. 【Python】猜数小游戏

    有点沙雕 temp=input("猜猜我心里想的是哪个数字?") guess=int (temp) if guess==8: print("你是我肚里的蛔虫么?" ...

  8. pyqt5 做的小程序,可以用来UI做个小demo

    #!/usr/bin/python3# -*- coding: utf-8 -*- """ZetCode PyQt5 tutorial This program crea ...

  9. 【Python】猜数小游戏(文件操作)

    人生苦短,我用Python 关键词 1.多用户 2.字典记录所有成绩 3.每次游戏轮数&总游戏次数&平均每次游戏需要多少轮 字典Dictionary.列表List.元组Tuple差异化 ...

随机推荐

  1. 微服务深入浅出(7)-- 网关路由Zuul

    Zuul用于构建边界服务,致力于动态路由,过滤,监控,弹性伸缩和安全等方向. 1.Zuul+Ribbon+Eureka结合,可以实现智能路由和负载均衡 2.网关将所有服务的API接口统一聚合统一暴露 ...

  2. 对某道ctf的一点点记录

    题目:http://ctf5.shiyanbar.com/web/pcat/index.php 是一道注入的题,主要利用了offset 和 group by with rollup的知识 1.offs ...

  3. python练习-Socket实现远程cmd命令

    需求:基于tcp的套接字实现远程执行命令的操作 代码示例: # 编辑者:闫龙 #Client端部分 import socket #导入骚凯特模块 CmdObj = socket.socket(sock ...

  4. webpack构建react多页面应用

    写这个的初衷是很难找一个简洁的项目脚手架,很多脚手架都有很多依赖,光看依赖就要很久,所以自己参照网上的内容,弄个这么一个简单的多页面的脚手架. 利用creat-react-app 新建一个react应 ...

  5. 串口流控制详解(CTS/RTS,DTR/DSR)

    1 首先看下关于流控相关的几个端口的解释如下图 除了必要的地(GND)要连接外,其它连如下 步骤阅读 2 计算机和猫(MODEM)的连接 步骤阅读 步骤阅读 3 计算机和非猫的连接(null  mod ...

  6. linux sigaction 函数 用法释义

    使用 sigaction 函数: signal 函数的使用方法简单,但并不属于 POSIX 标准,在各类 UNIX 平台上的实现不尽相同,因此其用途受 到了一定的限制.而 POSIX 标准定义的信号处 ...

  7. ps查看CPU和内存占用前10的进程

    内存增序 ps aux --sort rss 内存减序 ps aux --sort -rss cpu增序 ps auxw --sort=%cpu cpu减序 ps auxw --sort=-%cpu ...

  8. MySQL权限操作:Grant、Revoke

    数据库操作: 创建数据库.创建表——CREATE 删除数据库.删除表——DROP 删除表内容——TRUNCATE.DELETE(后者效率低.一行一行地删除记录) 查询数据库.查询表——SELECT 插 ...

  9. UE简单配置

    1 头上显示文件位置和名称,视图->视图列表——>打开文件标签,在右面点放大 2 函数列表,视图->视图列表——>打开文件标签

  10. linux 安装 Elasticsearch6.4.0详细步骤以及问题解决方案

    1.jdk 安装 参考资料:https://www.cnblogs.com/shihaiming/p/5809553.html 2.elasticsearch 安装 下载:https://artifa ...