python programming作业11 Qt designer (打地鼠,不是很完美)

不导包的代码
from PyQt5 import QtCore, QtGui, QtWidgets
import sys
from PyQt5.QtWidgets import QApplication, QMainWindow
import sys
from PyQt5.QtCore import *
from PyQt5.QtGui import *
from PyQt5.QtWidgets import * class Ui_widget(object):
def setupUi(self, widget):
widget.setObjectName("widget")
widget.resize(548, 461) self.pushButton_1 = QtWidgets.QPushButton(widget)
self.pushButton_1.setGeometry(QtCore.QRect(60, 130, 111, 81))
self.pushButton_1.setObjectName("pushButton")
self.pushButton_2 = QtWidgets.QPushButton(widget)
self.pushButton_2.setGeometry(QtCore.QRect(220, 130, 111, 81))
self.pushButton_2.setObjectName("pushButton_2")
self.pushButton_3 = QtWidgets.QPushButton(widget)
self.pushButton_3.setGeometry(QtCore.QRect(390, 130, 111, 81))
self.pushButton_3.setObjectName("pushButton_3")
self.pushButton_4 = QtWidgets.QPushButton(widget)
self.pushButton_4.setGeometry(QtCore.QRect(60, 240, 111, 81))
self.pushButton_4.setObjectName("pushButton_4")
self.pushButton_5 = QtWidgets.QPushButton(widget)
self.pushButton_5.setGeometry(QtCore.QRect(60, 340, 111, 81))
self.pushButton_5.setObjectName("pushButton_5")
self.pushButton_6 = QtWidgets.QPushButton(widget)
self.pushButton_6.setGeometry(QtCore.QRect(220, 240, 111, 81))
self.pushButton_6.setObjectName("pushButton_6")
self.pushButton_7 = QtWidgets.QPushButton(widget)
self.pushButton_7.setGeometry(QtCore.QRect(390, 240, 111, 81))
self.pushButton_7.setObjectName("pushButton_7")
self.pushButton_8 = QtWidgets.QPushButton(widget)
self.pushButton_8.setGeometry(QtCore.QRect(220, 340, 111, 81))
self.pushButton_8.setObjectName("pushButton_8")
self.pushButton_9 = QtWidgets.QPushButton(widget)
self.pushButton_9.setGeometry(QtCore.QRect(390, 340, 111, 81))
self.pushButton_9.setObjectName("pushButton_9")
self.pushButton_10 = QtWidgets.QPushButton(widget)
self.pushButton_10.setGeometry(QtCore.QRect(30, 20, 91, 41))
self.pushButton_10.setObjectName("pushButton_10")
self.pushButton_11 = QtWidgets.QPushButton(widget)
self.pushButton_11.setGeometry(QtCore.QRect(30, 80, 91, 41))
self.pushButton_11.setObjectName("pushButton_11")
self.label = QtWidgets.QLabel(widget)
self.label.setGeometry(QtCore.QRect(220, 30, 151, 51))
self.label.setObjectName("label") self.retranslateUi(widget)
QtCore.QMetaObject.connectSlotsByName(widget)
widget.setTabOrder(self.pushButton_1, self.pushButton_2)
widget.setTabOrder(self.pushButton_2, self.pushButton_4)
widget.setTabOrder(self.pushButton_4, self.pushButton_3)
widget.setTabOrder(self.pushButton_3, self.pushButton_5)
widget.setTabOrder(self.pushButton_5, self.pushButton_6)
widget.setTabOrder(self.pushButton_6, self.pushButton_7)
widget.setTabOrder(self.pushButton_7, self.pushButton_8)
widget.setTabOrder(self.pushButton_8, self.pushButton_9)
widget.setTabOrder(self.pushButton_9, self.pushButton_10)
widget.setTabOrder(self.pushButton_10, self.pushButton_11) def retranslateUi(self, widget):
_translate = QtCore.QCoreApplication.translate
widget.setWindowTitle(_translate("widget", "帅帅的打地鼠游戏"))
#self.pushButton.setText(_translate("widget", "PushButton"))
self.pushButton_1.setStyleSheet('QPushButton{background-image:url(tu.png)}')
self.pushButton_2.setStyleSheet('QPushButton{background-image:url(tu.png)}')
self.pushButton_3.setStyleSheet('QPushButton{background-image:url(tu.png)}')
self.pushButton_4.setStyleSheet('QPushButton{background-image:url(tu.png)}')
self.pushButton_5.setStyleSheet('QPushButton{background-image:url(tu.png)}')
self.pushButton_6.setStyleSheet('QPushButton{background-image:url(tu.png)}')
self.pushButton_7.setStyleSheet('QPushButton{background-image:url(tu.png)}')
self.pushButton_8.setStyleSheet('QPushButton{background-image:url(tu.png)}')
self.pushButton_9.setStyleSheet('QPushButton{background-image:url(tu.png)}')
self.pushButton_10.setText(_translate("widget", "开始游戏"))
self.pushButton_11.setText(_translate("widget", "停止"))
self.label.setText(_translate("widget", "TextLabel")) from PyQt5.QtCore import QTimer
import time
import numpy as np class MyWindow(QDialog, Ui_widget):
def __init__(self, parent=None):
super().__init__(parent)
self. setupUi(self)
self.begin = False
self.end = True
self.score = 0 #标记这9格子有没有出现小老鼠
self.flag = np.zeros(10) self.timer = QTimer(self) #初始化一个定时器
self.timer.timeout.connect(self.operate) #计时结束调用operate()方法 self.push_dic={}
self.push_dic[1]=self.pushButton_1
self.push_dic[2]=self.pushButton_2
self.push_dic[3]=self.pushButton_3
self.push_dic[4]=self.pushButton_4
self.push_dic[5]=self.pushButton_5
self.push_dic[6]=self.pushButton_6
self.push_dic[7]=self.pushButton_7
self.push_dic[8]=self.pushButton_8
self.push_dic[9]=self.pushButton_9 self.pushButton_10.clicked.connect(self.game)
self.pushButton_11.clicked.connect(self.gameover)
self.label.setText(str(self.score)) self.push_dic[1].clicked.connect(lambda:self.getscore(1))
self.push_dic[2].clicked.connect(lambda:self.getscore(2))
self.push_dic[3].clicked.connect(lambda:self.getscore(3))
self.push_dic[4].clicked.connect(lambda:self.getscore(4))
self.push_dic[5].clicked.connect(lambda:self.getscore(5))
self.push_dic[6].clicked.connect(lambda:self.getscore(6))
self.push_dic[7].clicked.connect(lambda:self.getscore(7))
self.push_dic[8].clicked.connect(lambda:self.getscore(8))
self.push_dic[9].clicked.connect(lambda:self.getscore(9)) self.label.setStyleSheet("font:20pt '楷体';border-width: 1px;border-style: solid;border-color: rgb(255, 0, 0);") # 每过一秒发生的事情
def operate(self):
#具体操作
#print("计时结束") #地鼠全部藏起来
for i in range(1,10):
self.push_dic[i].setStyleSheet('QPushButton{background-image:url(tu.png)}')
self.flag = np.zeros(10) a=np.random.randint(1,10)
self.push_dic[a].setStyleSheet('QPushButton{background-image:url(mouse.png)}')
self.flag[a]=1
a=np.random.randint(1,10)
self.push_dic[a].setStyleSheet('QPushButton{background-image:url(mouse.png)}')
self.flag[a]=1
a=np.random.randint(1,10)
self.push_dic[a].setStyleSheet('QPushButton{background-image:url(mouse.png)}')
self.flag[a]=1 def game(self):
if self.begin == False:
self.end = False
self.begin = True
print("启动计时器")
self.timer.start(800) #设置计时间隔并启动
self.pushButton_10.setText("暂停") elif self.begin == True:
self.begin = False
self.timer.stop()
self.pushButton_10.setText("继续") def gameover(self):
if self.end == False:
self.begin = False
self.end == True
self.pushButton_10.setText("开始游戏")
self.flag = np.zeros(10)
self.timer.stop()
#地鼠全部藏起来
for i in range(1,10):
self.push_dic[i].setStyleSheet('QPushButton{background-image:url(tu.png)}')
self.score = 0
self.label.setText(str(self.score)) def getscore(self,a):
if self.flag[a] == 1 and self.begin == True:
self.score += 1
self.label.setText(str(self.score))
self.flag[a] = 0
self.push_dic[a].setStyleSheet('QPushButton{background-image:url(catch.png)}') app = QApplication(sys.argv)
form = MyWindow()
form.show()
app.exec_()
导包的代码,先用Qt布局再

qt_designer.ui转为qt_designer.py以后
# -*- coding: utf-8 -*- # Form implementation generated from reading ui file '11.ui'
#
# Created by: PyQt5 UI code generator 5.11.3
#
# WARNING! All changes made in this file will be lost! from PyQt5 import QtCore, QtGui, QtWidgets class Ui_widget(object):
def setupUi(self, widget):
widget.setObjectName("widget")
widget.resize(548, 461) self.pushButton_1 = QtWidgets.QPushButton(widget)
self.pushButton_1.setGeometry(QtCore.QRect(60, 130, 111, 81))
self.pushButton_1.setObjectName("pushButton")
self.pushButton_2 = QtWidgets.QPushButton(widget)
self.pushButton_2.setGeometry(QtCore.QRect(220, 130, 111, 81))
self.pushButton_2.setObjectName("pushButton_2")
self.pushButton_3 = QtWidgets.QPushButton(widget)
self.pushButton_3.setGeometry(QtCore.QRect(390, 130, 111, 81))
self.pushButton_3.setObjectName("pushButton_3")
self.pushButton_4 = QtWidgets.QPushButton(widget)
self.pushButton_4.setGeometry(QtCore.QRect(60, 240, 111, 81))
self.pushButton_4.setObjectName("pushButton_4")
self.pushButton_5 = QtWidgets.QPushButton(widget)
self.pushButton_5.setGeometry(QtCore.QRect(60, 340, 111, 81))
self.pushButton_5.setObjectName("pushButton_5")
self.pushButton_6 = QtWidgets.QPushButton(widget)
self.pushButton_6.setGeometry(QtCore.QRect(220, 240, 111, 81))
self.pushButton_6.setObjectName("pushButton_6")
self.pushButton_7 = QtWidgets.QPushButton(widget)
self.pushButton_7.setGeometry(QtCore.QRect(390, 240, 111, 81))
self.pushButton_7.setObjectName("pushButton_7")
self.pushButton_8 = QtWidgets.QPushButton(widget)
self.pushButton_8.setGeometry(QtCore.QRect(220, 340, 111, 81))
self.pushButton_8.setObjectName("pushButton_8")
self.pushButton_9 = QtWidgets.QPushButton(widget)
self.pushButton_9.setGeometry(QtCore.QRect(390, 340, 111, 81))
self.pushButton_9.setObjectName("pushButton_9")
self.pushButton_10 = QtWidgets.QPushButton(widget)
self.pushButton_10.setGeometry(QtCore.QRect(30, 20, 91, 41))
self.pushButton_10.setObjectName("pushButton_10")
self.pushButton_11 = QtWidgets.QPushButton(widget)
self.pushButton_11.setGeometry(QtCore.QRect(30, 80, 91, 41))
self.pushButton_11.setObjectName("pushButton_11")
self.label = QtWidgets.QLabel(widget)
self.label.setGeometry(QtCore.QRect(220, 30, 151, 51))
self.label.setObjectName("label") self.retranslateUi(widget)
QtCore.QMetaObject.connectSlotsByName(widget)
widget.setTabOrder(self.pushButton_1, self.pushButton_2)
widget.setTabOrder(self.pushButton_2, self.pushButton_4)
widget.setTabOrder(self.pushButton_4, self.pushButton_3)
widget.setTabOrder(self.pushButton_3, self.pushButton_5)
widget.setTabOrder(self.pushButton_5, self.pushButton_6)
widget.setTabOrder(self.pushButton_6, self.pushButton_7)
widget.setTabOrder(self.pushButton_7, self.pushButton_8)
widget.setTabOrder(self.pushButton_8, self.pushButton_9)
widget.setTabOrder(self.pushButton_9, self.pushButton_10)
widget.setTabOrder(self.pushButton_10, self.pushButton_11) def retranslateUi(self, widget):
_translate = QtCore.QCoreApplication.translate
widget.setWindowTitle(_translate("widget", "帅帅的打地鼠游戏"))
#self.pushButton.setText(_translate("widget", "PushButton"))
self.pushButton_1.setStyleSheet('QPushButton{background-image:url(tu.png)}')
self.pushButton_2.setStyleSheet('QPushButton{background-image:url(tu.png)}')
self.pushButton_3.setStyleSheet('QPushButton{background-image:url(tu.png)}')
self.pushButton_4.setStyleSheet('QPushButton{background-image:url(tu.png)}')
self.pushButton_5.setStyleSheet('QPushButton{background-image:url(tu.png)}')
self.pushButton_6.setStyleSheet('QPushButton{background-image:url(tu.png)}')
self.pushButton_7.setStyleSheet('QPushButton{background-image:url(tu.png)}')
self.pushButton_8.setStyleSheet('QPushButton{background-image:url(tu.png)}')
self.pushButton_9.setStyleSheet('QPushButton{background-image:url(tu.png)}')
self.pushButton_10.setText(_translate("widget", "开始游戏"))
self.pushButton_11.setText(_translate("widget", "停止"))
self.label.setText(_translate("widget", "TextLabel"))
再导入
from qt_desiginer import Ui_widget
from PyQt5.QtCore import QTimer
import time
import numpy as np
from PyQt5.QtCore import *
from PyQt5.QtGui import *
from PyQt5.QtWidgets import *
import sys class MyWindow(QDialog, Ui_widget):
def __init__(self, parent=None):
super().__init__(parent)
self. setupUi(self)
self.begin = False
self.end = True
self.score = 0 #标记这9格子有没有出现小老鼠
self.flag = np.zeros(10) self.timer = QTimer(self) #初始化一个定时器
self.timer.timeout.connect(self.operate) #计时结束调用operate()方法 self.push_dic={}
self.push_dic[1]=self.pushButton_1
self.push_dic[2]=self.pushButton_2
self.push_dic[3]=self.pushButton_3
self.push_dic[4]=self.pushButton_4
self.push_dic[5]=self.pushButton_5
self.push_dic[6]=self.pushButton_6
self.push_dic[7]=self.pushButton_7
self.push_dic[8]=self.pushButton_8
self.push_dic[9]=self.pushButton_9 self.pushButton_10.clicked.connect(self.game)
self.pushButton_11.clicked.connect(self.gameover)
self.label.setText(str(self.score)) self.push_dic[1].clicked.connect(lambda:self.getscore(1))
self.push_dic[2].clicked.connect(lambda:self.getscore(2))
self.push_dic[3].clicked.connect(lambda:self.getscore(3))
self.push_dic[4].clicked.connect(lambda:self.getscore(4))
self.push_dic[5].clicked.connect(lambda:self.getscore(5))
self.push_dic[6].clicked.connect(lambda:self.getscore(6))
self.push_dic[7].clicked.connect(lambda:self.getscore(7))
self.push_dic[8].clicked.connect(lambda:self.getscore(8))
self.push_dic[9].clicked.connect(lambda:self.getscore(9)) self.label.setStyleSheet("font:20pt '楷体';border-width: 1px;border-style: solid;border-color: rgb(255, 0, 0);") # 每过一秒发生的事情
def operate(self):
#具体操作
#print("计时结束") #地鼠全部藏起来
for i in range(1,10):
self.push_dic[i].setStyleSheet('QPushButton{background-image:url(tu.png)}')
self.flag = np.zeros(10) a=np.random.randint(1,10)
self.push_dic[a].setStyleSheet('QPushButton{background-image:url(mouse.png)}')
self.flag[a]=1
a=np.random.randint(1,10)
self.push_dic[a].setStyleSheet('QPushButton{background-image:url(mouse.png)}')
self.flag[a]=1
a=np.random.randint(1,10)
self.push_dic[a].setStyleSheet('QPushButton{background-image:url(mouse.png)}')
self.flag[a]=1 def game(self):
if self.begin == False:
self.end = False
self.begin = True
print("启动计时器")
self.timer.start(800) #设置计时间隔并启动
self.pushButton_10.setText("暂停") elif self.begin == True:
self.begin = False
self.timer.stop()
self.pushButton_10.setText("继续") def gameover(self):
if self.end == False:
self.begin = False
self.end == True
self.pushButton_10.setText("开始游戏")
self.flag = np.zeros(10)
self.timer.stop()
#地鼠全部藏起来
for i in range(1,10):
self.push_dic[i].setStyleSheet('QPushButton{background-image:url(tu.png)}')
self.score = 0
self.label.setText(str(self.score)) def getscore(self,a):
if self.flag[a] == 1 and self.begin == True:
self.score += 1
self.label.setText(str(self.score))
self.flag[a] = 0
self.push_dic[a].setStyleSheet('QPushButton{background-image:url(catch.png)}') app = QApplication(sys.argv)
form = MyWindow()
form.show()
app.exec_()

python programming作业11 Qt designer (打地鼠,不是很完美)的更多相关文章
- python programming作业10(仍有一点点小bug)
# -*- coding: utf-8 -*- import os import platform import sys from PyQt5.QtCore import * from PyQt5.Q ...
- python programming作业5
# -*- coding: utf-8 -*- class ageError(Exception): pass class salaryError(Exception): pass class s ...
- Qt Designer中自定义控件的使用(提升法与插件法)
准备乱写一点Qt自定义Widget在Designer中的使用.可是又不想重复提升法(promotion)及插件法基本用法,因为Manual中Using Custom Widgets with Qt D ...
- 第15.11节 PyQt(Python+Qt)入门学习:Qt Designer(设计师)组件Property Editor(属性编辑)界面中主窗口QMainWindow类相关属性详解
概述 主窗口对象是在新建窗口对象时,选择main window类型的模板时创建的窗口对象,如图: 在属性编辑界面中,主窗口对象与QMainWindow相关的属性包括:iconSize.toolButt ...
- python的部分GUI模块简介tkinter、pyqt5(Qt Designer)
笔者认为,这两个作为Python3较为常用且简单的GUI模块,是Python开发者所必须学习至少是了解的. 其中tkinter为Python3自带的GUI模块,而pyqt5则需要通过pip insta ...
- PyQt(Python+Qt)学习随笔:Qt Designer中部件的autoFillBackground属性
autoFillBackground属性可以确认部件背景是否自动填充,如果自动填充,Qt会在调用Paint事件之前填充部件的背景.使用的颜色由部件调色板中的QPalette.window 角色定义(关 ...
- PyQt(Python+Qt)学习随笔:Qt Designer中部件的样式表styleSheet属性
styleSheet属性是定义部件外观的属性样式表,在Qt中styleSheet样式表是类似于html的css样式一样的方法,只是时专门为Qt中的部件开发的.styleSheet的定义语法也是类似CS ...
- PyQt(Python+Qt)学习随笔:Qt Designer中部件的layoutDirection属性
layoutDirection属性保存的是部件的布局方向,有三个取值: 在部件上设置布局方向时,它将传播到部件的子级,但不会传播到作为窗口的子级,也不会传播到已显式调用setLayoutDirecti ...
- PyQt(Python+Qt)学习随笔:Qt Designer中部件的accessibleDescription和accessibleName辅助阅读属性
accessibleDescription和accessibleName属性都是用于残疾人辅助阅读的,这两个属性都有国际化属性(关于国际化请参考<PyQt(Python+Qt)学习随笔:Qt D ...
随机推荐
- HH的项链 HYSBZ - 1878 (莫队/ 树状数组)
HH有一串由各种漂亮的贝壳组成的项链.HH相信不同的贝壳会带来好运,所以每次散步 完后,他都会随意取出一 段贝壳,思考它们所表达的含义.HH不断地收集新的贝壳,因此他的项链变得越来越长.有一天,他突然 ...
- JQuery 中each的使用方法
JQuery中的each函数在1.3.2的官方文档中的描述如下: each(callback) 以每一个匹配的元素作为上下文来执行一个函数. 意味着,每次执行传递进来的函数时,函数中的this关键字都 ...
- ogg中断处理
ogg因为网络问题导致中断无法启动,需要重新抽取数据: --前滚抽取进程生成新的trail文件 alter extract ext147 etrollover alter ext147 extseqn ...
- JavaScript16进制颜色值和rgb的转换
//十六进制颜色值域RGB格式颜色值之间的相互转换//十六进制颜色值的正则表达式 var reg = /^#([0-9a-fA-f]{3}|[0-9a-fA-f]{6})$/; /*RGB颜色转换为1 ...
- 解决laydate动态设置初始值的问题
//初始化//注意:我这里是时间范围选择,所以定义了range属性.var timeScope = laydate.render({ elem: '#time_scope', range: '~', ...
- Java-JDBCUtil工具类
import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import ja ...
- ElementUI datepicker日期选择器时间选择范围限制
ElementUI是饿了么推出的一套基于vue2.x的一个ui框架.官方文档也很详细,这里做一个element-ui日期插件的补充. 最近做项目用到了datepicker,需要对日期选择做一些限制, ...
- HTTP的options方法作用
1.HTTP的options方法作用 检测服务器所支持的请求方法.(比如:‘/user'路由支持哪些方法:get.post.delete...) CORS中的预检请求(检测某个接口是否支持跨域) 2. ...
- React之this.refs, 实现数据双向绑定
1.实现数据双向绑定 将input组件与this.state属性绑定,要么是readonly, 要么使用onChange事件: 获取input元素的value值,有两种方式: 1) e.target. ...
- c语言函数分析
1.vc6的相关使用 1)常用的快捷键 f7 ->编译 f5 ->运行 f9 ->断点 f10 ->单步执行 f11 ->单步执行,可进入函 ...