如何通过选择ToolBar上的项目从另一个类中打开一个类? Python的/ PyQt的

时间:2014-04-18 18:48:19

标签: python pyqt pyqt4

我试图从AddTest类中的def运行类AddTQuestions但它不会工作!!它打开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_()

1 个答案:

答案 0 :(得分:1)

对象获取垃圾,因为在函数结束时您没有对它进行任何引用。

将它们添加为类变量,窗口​​保持打开状态。

self.AddQuestion = AddTQuestions()
self.AddQuestion.show()