![](/img/trans.png)
[英]python pyqt4 closeEvent preventing windows restart/shutdown?
[英]Game restart PyQT4 Python
我已经使用PyQT4完成了简单的Hangman游戏。 但是我在创建restart()方法时遇到了麻烦。
我试过了:
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)
换句话说,im删除创建的每个对象。 我以某种方式得到输出:
MainWindow.setCentralWidget(self.centralwidget)
AttributeError: 'QWidget' object has no attribute 'setCentralWidget'
当我想第二次调用setUpUi()时,我的想法用光了。
还有另一个问题。 我的重启几乎可以正常工作。 但是我有另一个问题。 包含图形元素的像素图(悬挂设备一一建立元素-10个jpg文件,例如img1,img2 ...)。 对于第一个游戏,它可以正常工作。 在9个错误之后,应该重新构建整个UI。但是然后pixmap不会显示...我试图删除
self.pic.setParent(None)
然后再次将“ img10.jpg”切换为“ img1.jpg”。 但这无济于事。
您在主窗口上创建的中央小部件显然不是主窗口,而是窗口上的小部件。 因此,当然尝试将其用作MainWindow
不会起作用。
如果要重用同一主窗口,则需要按住它以便可以重用。 可能有一个更好的地方—很难在没有任何相关代码的情况下看到如何使用此类—但是要做的一件显而易见的事情就是将其存储在setupUI
:
def setupUi(self, MainWindow):
MainWindow.setObjectName(_fromUtf8("MainWindow"))
MainWindow.resize(1188, 696)
self.mainwindow = MainWindow
# …
…然后您可以重复使用它:
def restartGame(self):
# …
self.setupUi(self.mainwindow)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.