Как открыть окно

Следующий код должен закрыть текущий файл и открыть его снова. Вместо этого он продолжает открывать только новые окна.

У кого-нибудь есть подсказка, чтобы держать старое окно закрытым?

import sys
from PyQt4 import QtGui, QtCore
import subprocess 

class Example(QtGui.QWidget):
    def __init__(self):
        super(Example, self).__init__()
        self.initUI()

    def run(self, path):
        subprocess.call(['python',path])

    def initUI(self):
        self.close()
        self.btn_newSearch = QtGui.QPushButton('Start', self)
        self.btn_newSearch.clicked.connect(lambda:self.run('tests.py'))

        self.setGeometry(300, 300, 250, 150)
        self.setWindowTitle('Python Script')
        self.show()

def main():
    app = QtGui.QApplication(sys.argv)
    ex = Example()
    sys.exit(app.exec_())

if __name__ == '__main__':
    main()

Ответы на вопрос(1)

Вы, кажется, положилиself.close() в неправильном месте. Кроме того, вы не должны использоватьsubprocess.call, так как он будет блокироваться, пока команда не завершится. Лучше использоватьQProcess вместо:

    def run(self, path):
        QtCore.QProcess.startDetached('python', [path])
        self.close()

    def initUI(self):
        self.btn_newSearch = QtGui.QPushButton('Start', self)
        ...

Ваш ответ на вопрос