I want to make a sport team managing program but I am stuck on this one part. On playertabs.py your supposed to be able to add a new player with a button, this pop up a second window (NewPlayers.py) with the details that needs to be entered. When hitting the add player button the second window (NewPlayers.py) needs to close and all entered information should be saved on the players name that they entered on the playertabs.py window in the form of a list. Multiple players must be added this way.
Main.py codes:
import sys
from PyQt5.uic import loadUi
from PyQt5 import QtWidgets
from PyQt5.QtWidgets import QDialog, QApplication, QMainWindow
from NewPlayers import Ui_Dialog
#PlayersTab screen
class PlayersTab(QMainWindow):
def __init__(self):
super(PlayersTab, self).__init__()
loadUi("playerstab.ui", self)
self.addnewplayer.clicked.connect(self.openNewPlayers)
#Go to NewPlayers screen
def openNewPlayers(self):
self.window = QtWidgets.QDialog()
self.ui = Ui_Dialog()
self.ui.setupUi(self.window)
self.window.show()
#Go to PlayerTab screen
def gotoPlayersTab(self):
widget.setCurrentIndex(widget.currentIndex() + 1)
# main
app = QApplication(sys.argv)
widget = QtWidgets.QStackedWidget()
playerstab = PlayersTab()
widget.addWidget(playerstab)
widget.setFixedHeight(480)
widget.setFixedWidth(640)
widget.show()
try:
sys.exit(app.exec_())
except:
print("Exiting")
playertab.py code:
from PyQt5 import QtCore, QtGui, QtWidgets
class Ui_MainWindow(object):
def setupUi(self, MainWindow):
MainWindow.setObjectName("MainWindow")
MainWindow.resize(640, 480)
self.centralwidget = QtWidgets.QWidget(MainWindow)
self.centralwidget.setObjectName("centralwidget")
self.addnewplayer = QtWidgets.QPushButton(self.centralwidget)
self.addnewplayer.setGeometry(QtCore.QRect(450, 50, 181, 31))
self.addnewplayer.setObjectName("addnewplayer")
self.playerlist = QtWidgets.QListWidget(self.centralwidget)
self.playerlist.setGeometry(QtCore.QRect(0, 90, 630, 380))
self.playerlist.setObjectName("playerlist")
self.matches = QtWidgets.QPushButton(self.centralwidget)
self.matches.setGeometry(QtCore.QRect(10, 50, 181, 31))
self.matches.setObjectName("matches")
self.searchplayer = QtWidgets.QLineEdit(self.centralwidget)
self.searchplayer.setGeometry(QtCore.QRect(10, 10, 621, 31))
self.searchplayer.setObjectName("searchplayer")
MainWindow.setCentralWidget(self.centralwidget)
self.retranslateUi(MainWindow)
QtCore.QMetaObject.connectSlotsByName(MainWindow)
def retranslateUi(self, MainWindow):
_translate = QtCore.QCoreApplication.translate
MainWindow.setWindowTitle(_translate("MainWindow", "MainWindow"))
self.addnewplayer.setText(_translate("MainWindow", "Add new player"))
self.matches.setText(_translate("MainWindow", "Matches"))
if __name__ == "__main__":
import sys
app = QtWidgets.QApplication(sys.argv)
MainWindow = QtWidgets.QMainWindow()
ui = Ui_MainWindow()
ui.setupUi(MainWindow)
MainWindow.show()
sys.exit(app.exec_())
NewPlayer.py code:
import sys
from PyQt5 import QtCore, QtGui, QtWidgets
class Ui_Dialog(object):
def setupUi(self, Dialog):
Dialog.setObjectName("Dialog")
Dialog.resize(640, 480)
self.addPhoto = QtWidgets.QPushButton(Dialog)
self.addPhoto.setGeometry(QtCore.QRect(10, 410, 100, 50))
font = QtGui.QFont()
font.setPointSize(11)
self.addPhoto.setFont(font)
self.addPhoto.setCursor(QtGui.QCursor(QtCore.Qt.ArrowCursor))
self.addPhoto.setObjectName("addPhoto")
self.p_name = QtWidgets.QLineEdit(Dialog)
self.p_name.setEnabled(True)
self.p_name.setGeometry(QtCore.QRect(400, 36, 200, 44))
self.p_name.setObjectName("p_name")
self.p_prfname = QtWidgets.QLineEdit(Dialog)
self.p_prfname.setGeometry(QtCore.QRect(400, 80, 200, 44))
self.p_prfname.setObjectName("p_prfname")
self.p_height = QtWidgets.QLineEdit(Dialog)
self.p_height.setGeometry(QtCore.QRect(400, 168, 200, 44))
self.p_height.setObjectName("p_height")
self.p_nr = QtWidgets.QLineEdit(Dialog)
self.p_nr.setGeometry(QtCore.QRect(400, 212, 200, 44))
self.p_nr.setObjectName("p_nr")
self.p_placeob = QtWidgets.QLineEdit(Dialog)
self.p_placeob.setGeometry(QtCore.QRect(400, 256, 200, 44))
self.p_placeob.setObjectName("p_placeob")
self.p_weight = QtWidgets.QLineEdit(Dialog)
self.p_weight.setGeometry(QtCore.QRect(400, 300, 200, 44))
self.p_weight.setObjectName("p_weight")
self.back = QtWidgets.QPushButton(Dialog)
self.back.setGeometry(QtCore.QRect(280, 410, 100, 50))
font = QtGui.QFont()
font.setPointSize(11)
self.back.setFont(font)
self.back.setObjectName("back")
#addplayer Button
self.addPlayer = QtWidgets.QPushButton(Dialog, clicked=lambda: self.savePlayer())
self.addPlayer.setGeometry(QtCore.QRect(520, 410, 100, 50))
font = QtGui.QFont()
font.setPointSize(11)
self.addPlayer.setFont(font)
self.addPlayer.setObjectName("addPlayer")
self.p_dob = QtWidgets.QLineEdit(Dialog)
self.p_dob.setGeometry(QtCore.QRect(400, 124, 200, 44))
self.p_dob.setObjectName("p_dob")
self.retranslateUi(Dialog)
QtCore.QMetaObject.connectSlotsByName(Dialog)
def savePlayer(self):
# blank list to hold player info
playerInfo = []
# loop through data and pull out each info
playerInfo.append(self.p_name)
playerInfo.append(self.p_prfname)
playerInfo.append(self.p_dob)
playerInfo.append(self.p_height)
playerInfo.append(self.p_nr)
playerInfo.append(self.p_placeob)
playerInfo.append(self.p_weight)
p_name = self.p_name.text()
print(p_name)
# close window
# NewPlayers.close()
from playerstab import Ui_MainWindow
# self.ui.playerlist.addItem(player)
from Main import PlayersTab
from Main import widget
playerstab = PlayersTab()
widget.addWidget(playerstab)
widget.setCurrentIndex(widget.currentIndex()+1)
#add player
player = p_name
playerstab.playerlist.addItem(player)
def retranslateUi(self, Dialog):
_translate = QtCore.QCoreApplication.translate
Dialog.setWindowTitle(_translate("Dialog", "CourseWork"))
self.addPhoto.setText(_translate("Dialog", "Add Photo"))
self.p_name.setText(_translate("Dialog", "Full name & Surname"))
self.p_prfname.setText(_translate("Dialog", "Preferred Name"))
self.p_height.setText(_translate("Dialog", "Height"))
self.p_nr.setText(_translate("Dialog", "Cellphone number"))
self.p_placeob.setText(_translate("Dialog", "Place of Birth"))
self.p_weight.setText(_translate("Dialog", "Weight"))
self.back.setText(_translate("Dialog", "Back"))
self.addPlayer.setText(_translate("Dialog", "Add Player"))
self.p_dob.setText(_translate("Dialog", "Date of Birth (DD/MM/YY)"))
if __name__ == "__main__":
app = QtWidgets.QApplication(sys.argv)
Dialog = QtWidgets.QDialog()
ui = Ui_Dialog()
ui.setupUi(Dialog)
Dialog.show()
sys.exit(app.exec_())