2016-05-05 12 views
0

Ich habe versucht, PyQt4. und habe diesen Code ausprobiert.PyQt4-Fenster wird nicht angezeigt, während das Programm ausgeführt wird, aber auf ipython

import sys                  
from PyQt4 import QtGui              

app = QtGui.QApplication(sys.argv)            
window = QtGui.QWidget()              
window.show() 
print 'end' 

Das obige Code funktioniert, wenn ich es versuchen auf ipython, aber es funktioniert nicht, wenn ich sie in eine Datei schreiben und ausführen. Ich versuchte auch, die Erlaubnis durch chmod +x zu ändern. Der Code läuft tatsächlich (der Grund, warum ich eine Druckanweisung am Ende hinzugefügt habe, um zu bestätigen, dass der Code bis zum Ende läuft), ich bekomme kein Fenster.

im laufenden Python 2.7.6 auf Ubuntu 14.04

Antwort

2

Sie benötigen die Qt-Ereignisschleife zu starten, indem app.exec_() Aufruf, sobald Sie die Widgets initialisiert haben und riefen show() auf Ihrem Hauptfenster.

+0

hat es funktioniert, warum ist es so nur auf Linux und nicht auf Windows, und ich habe noch nicht auf Mac versucht. – arvindh

+0

Es hat damit zu tun, wie Ipython auf diesen Plattformen funktioniert. Ich bin mir ziemlich sicher, dass es irgendwo auf SO ein Duplikat dieser Frage gibt, aber ich kann es nicht finden. Kurz gesagt, ich denke, ipython startet die Qt Event-Schleife aus einem anderen Grund, und so macht es Ihr Programm auch funktionieren. Wenn Sie mit der normalen Python-Konsole arbeiten, werden Sie wahrscheinlich nicht dasselbe Verhalten sehen –

Verwandte Themen