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 ...
随机推荐
- JMeter 控件整理
一个线程组里多个请求的情况下,添加用户参数.如添加random函数,若不勾选“每次迭代更新一次”则每发送一个请求调用一次random函数,勾选上之后,整个线程组运行过程只调用一次random函数.
- C++ SQLite的使用总结
SQLite3简介 SQLite3只是一个轻型的嵌入式数据库引擎,占用资源非常低,处理速度比Mysql还快,专门用于移动设备上进行适量的数据存取,它只是一个文件,不需要服务器进程. SQL语句是SQL ...
- 《Python基础教程》第二章:列表和元组(2)
list函数可以将字符串转换为列表 ' '.join(somelist)可以将列表转换为字符串 从列表中删除元素可以使用del语句来实现 方法是与对象有紧密联系的函数:对象.方法(参数) append ...
- (五) 结构化查询语言SQL——3
4. 数据更新 1)增 对应INSERT语句.格式为INSERT INTO T[(A1,…,Ak)] VALUES (C1,…,Ck),其中A代表表T的属性,C代表常量,A可以缺省,此时C必须严格按 ...
- HTML 获取class里的多个值 和 dataset的使用
属性:classList var x = event.target; console.log(x); console.log(x.classList); 可以发现 获取了全部的class里的值 获取单 ...
- ingress部署
# 手动部署 # 部署ingress-nginx 官方地址:https://github.com/kubernetes/ingress-nginx # 参考链接:https://www.jianshu ...
- BOOST 解析,修改,生成xml样例
解析XML 解析iworld XML,拿到entity和VisibleVolume的数据 int ParseiWorlds::readXML(const bpath &dir) { ptree ...
- PHP基础之搭建WAMP环境
访问 http://www.wampserver.com/en/ 点击 点击 点击 由于WAMP需要 Microsoft Visual C++运行库支持,请先到 这里 下载VC++2012运行库.官方 ...
- EntityManager的基本方法
1.Persistence 主要用来获取EntityManagerFactory的实例; 通过静态方法:createEntityManagerFactory 来实现: 该方法有两个重载版本: ...
- web大文件上传断点续传源码
总结一下大文件分片上传和断点续传的问题.因为文件过大(比如1G以上),必须要考虑上传过程网络中断的情况.http的网络请求中本身就已经具备了分片上传功能,当传输的文件比较大时,http协议自动会将文件 ...