I've done simple Hangman game using PyQT4. But i have trouble with creating restart() method.
I tried:
class Ui_MainWindow(QtGui.QMainWindow):
def setupUi(self, MainWindow):
MainWindow.setObjectName(_fromUtf8("MainWindow"))
MainWindow.resize(1188, 696)
MainWindow.setStyleSheet(_fromUtf8("background-color: black;"))
self.centralwidget = QtGui.QWidget(MainWindow)
self.centralwidget.setObjectName(_fromUtf8("centralwidget"))
self.statusbar = QtGui.QStatusBar(MainWindow)
self.statusbar.setObjectName(_fromUtf8("statusbar"))
self.buttons = []
self.setUpKeyboard()
MainWindow.setCentralWidget(self.centralwidget)
self.menubar = QtGui.QMenuBar(MainWindow)
self.menubar.setGeometry(QtCore.QRect(0, 0, 1188, 25))
self.menubar.setObjectName(_fromUtf8("menubar"))
MainWindow.setMenuBar(self.menubar)
MainWindow.setStatusBar(self.statusbar)
self.pic = QtGui.QLabel(self.mainwindow)
self.pic.setPixmap(QtGui.QPixmap(os.getcwd() + "/img/s0.jpg"))
self.pic.setGeometry(50, 150, 450, 280)
self.pic.setObjectName(_fromUtf8("pic"))
....
def restartGame(self):
self.wordLabel.setText(" ")
for i in range(26):
self.buttons[i].setParent(None)
self.counterLabel.setParent(None)
self.keyWordHidden = ""
self.keyWord = ""
self.pic.setParent(None)
self.setupUi(self.centralwidget)
In other words im deleting every object created. Somehow i get output:
MainWindow.setCentralWidget(self.centralwidget)
AttributeError: 'QWidget' object has no attribute 'setCentralWidget'
I'm running out of ideas what i need to pass as argument when i want call my setUpUi() for the second time...
Got another question. My restart works almost fine. But i got another problem. The pixmap that contains graphic element (hanging device building up elements one by one - 10 jpg files like img1, img2...). For the first gameplay it works fine. After 9 mistakes the whole UI should be re-build... But then the pixmap doesn't show up... I tried to remove
self.pic.setParent(None)
and just again switching the "img10.jpg" for "img1.jpg". But this does not help.