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差异化 ...
随机推荐
- Vue入坑教程(二)——项目结构详情介绍
之前已经介绍了关于Vue的脚手架vue-cli的安装,以及一些文件目录介绍.具体可以查看<vue 入坑教程(一)--搭建vue-cli脚手架> 下面简单说一下具体的文件介绍 (一) pac ...
- BFS:八数码问题
#include <iostream> #include <cstdlib> #include <cstdio> #include <cstring> ...
- ZeroMQ API(五) 传输模式
1.使用TCP的单播传输:zmq_tcp(7) 1.1 名称 zmq_tcp - 使用TCP的ZMQ单播传输 1.2 概要 TCP是一种无处不在,可靠的单播传输.当通过具有ZMQ的网络连接分布式应用程 ...
- 解除单个文件的与svn服务器的关联
有些文件和个人开发环境有关不需要和svn服务器做同步,可以取消其和svn服务的关联. 右键选中要取消关联的文件,右键菜单 Tortoise SVN ---> unversion and a ...
- BZOJ3994 约数个数和
3994: [SDOI2015]约数个数和 Time Limit: 20 Sec Memory Limit: 128 MB Description 设d(x)为x的约数个数,给定N.M,求 I ...
- js 语法简写积累
if (!a || !b || !c || !d){//} 简写为:if([a, b, c, d].map(Boolean).includes(false)){//};
- [Openwrt 扩展上篇]USB挂载&U盘启动&Samba共享
最近偷懒,没学习,反想起自己的路由刷了Openwrt,正好闲置了一个硬盘想拿来做个网络硬盘,于是开始了折腾....这里将不谈论如何刷Openwrt,如何ssh,如何添加PPOE,如何添加相对应服务的包 ...
- transparent 透明效果
background-color:transparent;就是把背景色设置为透明. 实际上background默认的颜色就是透明的属性.所以写和不写都是一样的 span{ width: 0; heig ...
- python函数,模块及eclipse配置python开发环境
一.eclipse的使用 1.作用 (1)最好用的IDE (2)可调式debug (3)查看可执行过程 (4)可查看源代码 2.安装eclipse及配置 目录安装Pythonpython for ec ...
- 84.VMware Tools安装——设置共享文件
一.安装VMware Tools 1.如图所示,点击安装 2.出现如下界面,将VMwareTools-9.6.2-1688356.tar.gz安装包复制到主文件夹下 3.输入命令tar -zxvf V ...