我正试图从class AddTQuestions
中的def运行class AddTest
但它不会工作!!
它打开窗口AddTQuestions
一瞬间然后立即关闭它?!
代码如下所示:
import sys
from PyQt4 import QtCore, QtGui
class Example(QtGui.QMainWindow):
def __init__(self):
super(Example, self).__init__()
self.initUI()
def initUI(self):
RunClassAction = QtGui.QAction(QtGui.QIcon('exit24.png'), 'Exit', self)
RunClassAction.triggered.connect(self.run)
self.toolbar = self.addToolBar('Exit')
self.toolbar.addAction(RunClassAction)
self.setGeometry(300, 300, 300, 200)
self.setWindowTitle('Why Wont this Woooorkkkkk')
self.show()
def run(self):
AddQuestion = AddTQuestions()
AddQuestion.show()
class AddTQuestions(QtGui.QMainWindow):
def __init__(self, parent=None):
super(AddTQuestions, self).__init__(parent)
self.welldone = QtGui.QLabel('WellDone')
self.button = QtGui.QPushButton('Press Me')
layout = QtGui.QVBoxLayout()
layout.addWidget(self.welldone)
layout.addWidget(self.button)
self.setLayout(layout)
print("hello")
if __name__ == '__main__':
app = QtGui.QApplication([])
window = Example()
window.show()
app.exec_()
答案 0 :(得分:0)
它"赢得了工作"因为您没有保留对您创建的AddTQuestions
实例的引用,因此在显示后会立即对其进行垃圾回收。
有许多不同的方法可以解决此问题,但对您的情况最好的方法可能是使用QDialog
而不是QMainWindow
,然后使用{{1}显示对话框}:
exec
这也有助于解决布局问题。