2016-07-06 19 views
0

Der folgende Code sollte die aktuelle Datei schließen und erneut öffnen. Stattdessen werden nur neue Fenster geöffnet.So öffnen Sie das Fenster

Hat jemand einen Hinweis, das alte Fenster geschlossen zu halten?

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() 

Antwort

1

Sie scheinen self.close() an der falschen Stelle gesetzt zu haben. Außerdem sollten Sie subprocess.call nicht verwenden, da es blockiert, bis der Befehl abgeschlossen ist. Es ist besser, stattdessen QProcess zu verwenden:

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

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

Vielen Dank für Ihre Bemühungen und Ihre erklärende Antwort .... – rainer

Verwandte Themen