软工课设2-图形界面

软工第二次课设-图形界面开发

本次的主要工作是在第一次黄金点游戏的基础上开发图形界面
开发平台Pycharm
开发工具PyQt5

一、图形界面设计

根据第一次开发的游戏功能,本次图形界面的开发包括初始界面,初始界面又包括:
1、开始新游戏
2、继续游戏
3、查看既往结果
4.退出游戏
这四个功能按钮

本次图形界面开发还包括一个游戏进行界面,包括:
1、输入游戏玩家人数(QtWeidgetText框)
2、输入玩家名称及所给的数字(QtWeidgetTable表格)
3、游戏输出结果(QtWeidgetText框)

二、图形界面实现

初始界面mainUI
初始界面的代码主要就是包括实现开始Window界面、实现Button按钮

def setupUi(self, MainWindow): # 启动开始界面
	MainWindow.setObjectName("MainWindow")
	        MainWindow.resize(382, 358)
	        self.centralwidget = QtWidgets.QWidget(MainWindow)
	        self.centralwidget.setObjectName("centralwidget")
	        self.label = QtWidgets.QLabel(self.centralwidget)
	        self.label.setGeometry(QtCore.QRect(150, 20, 114, 83))
	        sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Preferred)
	        sizePolicy.setHorizontalStretch(0)
	        sizePolicy.setVerticalStretch(0)
	        sizePolicy.setHeightForWidth(self.label.sizePolicy().hasHeightForWidth())
	        self.label.setSizePolicy(sizePolicy)
	        font = QtGui.QFont()
	        font.setFamily("Arial")
	        font.setPointSize(28)
	        self.label.setFont(font)
	        self.label.setObjectName("label") 
	        ##考虑到篇幅,代码未完全列出


def retranslateUi(self, MainWindow): #实现按钮的显示
        _translate = QtCore.QCoreApplication.translate
        MainWindow.setWindowTitle(_translate("MainWindow", "MainWindow"))
        self.label.setText(_translate("MainWindow", "黄金点"))
        self.pushButton.setText(_translate("MainWindow", "开始新游戏"))
        self.pushButton_2.setText(_translate("MainWindow", "继续游戏"))
        self.pushButton_3.setText(_translate("MainWindow", "查看既往结果"))
        self.pushButton_4.setText(_translate("MainWindow", "退出"))

游戏界面gameUI
gameUI界面主要就是实现游戏界面的设计

    def retranslateUi(self, MainWindow):
        _translate = QtCore.QCoreApplication.translate
        MainWindow.setWindowTitle(_translate("MainWindow", "MainWindow"))
        self.label.setText(_translate("MainWindow", "玩家人数:"))
        self.lineEdit.setText(_translate("MainWindow", "2"))
        self.pushButton_2.setText(_translate("MainWindow", "确定"))
        self.groupBox_2.setTitle(_translate("MainWindow", "输入"))
        item = self.tableWidget.verticalHeaderItem(0)
        item.setText(_translate("MainWindow", "0"))
        item = self.tableWidget.verticalHeaderItem(1)
        item.setText(_translate("MainWindow", "1"))
        item = self.tableWidget.horizontalHeaderItem(0)
        item.setText(_translate("MainWindow", "玩家姓名"))
        item = self.tableWidget.horizontalHeaderItem(1)
        item.setText(_translate("MainWindow", "玩家数据"))
        self.pushButton.setText(_translate("MainWindow", "开始"))
        self.groupBox.setTitle(_translate("MainWindow", "结果"))


 	def setupUi(self, MainWindow):
        MainWindow.setObjectName("MainWindow")
        MainWindow.resize(547, 466)
        self.centralwidget = QtWidgets.QWidget(MainWindow)
        self.centralwidget.setObjectName("centralwidget")
        self.verticalLayout = QtWidgets.QVBoxLayout(self.centralwidget)
        self.verticalLayout.setObjectName("verticalLayout")
        self.horizontalLayout_3 = QtWidgets.QHBoxLayout()
        self.horizontalLayout_3.setObjectName("horizontalLayout_3")
        self.label = QtWidgets.QLabel(self.centralwidget)
        sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Preferred)
        sizePolicy.setHorizontalStretch(0)
        sizePolicy.setVerticalStretch(0)
        sizePolicy.setHeightForWidth(self.label.sizePolicy().hasHeightForWidth())
        self.label.setSizePolicy(sizePolicy)
        font = QtGui.QFont()
        font.setFamily("Arial")
        font.setPointSize(12)
        self.label.setFont(font)
        self.label.setObjectName("label")
        self.horizontalLayout_3.addWidget(self.label)
        # 代码未完全列出

goldenPoint.py
在goldenPoint.py里新增了两个class:
MainUI(QMainWindow)

class MainUI(QMainWindow):
	def __init__(self): #初始化函数
	def newgame(self): # 开始新游戏
	def continuegame(self): # 继续游戏
	def seeHistory(self): # 查看既往结果

GameUI(QMainWindow)

class GameUI(QMainWindow):
	def __init__(self): # 初始化函数
	def showGamer(self) # 展示玩家
	def startGame(self): # 获取玩家输入数据 并开始游戏
		# to do 
		GoldenPoint(people, num)# 调用class People里的函数  people是游戏人数  num是含有所有玩家输入数字的一个列表
		# ...未列出
	def closeEvent(self, *args, **kwargs): # 关闭

三、最终效果:

在这里插入图片描述启动项目,产生开始界面
在这里插入图片描述游戏结果展示

四、总结

在本次团队开发中,我们小组二人发现,第一次的开发很多东西没有考虑到,比如说类的抽象不够,没有预留相应的接口,导致在第二次的开发过程中,没有办法在设计好界面以后,直接将界面按钮功能绑定在游戏功能的接口中,这让我们的工作量增大了许多。因此,在接下来的开发中,我们要更加重视对整体代码的设计,使我们的代码在后续迭代开发中有更理想的扩展性。

另外,由于我们小组对PyQt的使用还不算非常熟练,导致在设计界面的时候代码有些冗杂。在以后的界面开发中,可以直接采用QtDesigner,可以大量简化界面设计的代码。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值