2016-05-03 7 views
1

Ich installierte PyQT4 in Mac OS X El Capitan für Python 3 mit den Anweisungen in this answer. Die Anweisungen gaben die folgenden Befehle:PyQt4 in Mac OS X für Python 3 scheint nicht zu funktionieren

brew install python3 
brew install qt 
brew install sip --with-python3 
brew install pyqt --with-python3 

die ich überhaupt ohne Probleme laufe. Ich habe dann diese Zeile in meiner .bashrc Datei:

PYTHONPATH=/usr/local/lib/python3.3/site-packages:$PYTHONPATH 

ich Python verifiziert 3 ausgeführt wurde correcly. Ich ausgewertet auch richtig den folgenden Code in Python 3:

import PyQT4 

Jetzt, wenn ich versuche, dieses einfache Programm auszuführen, passiert nichts:

import sys 
from PyQt4 import QtGui 
app = QtGui.QApplication(sys.argv) 
window = QtGui.QWidget() 
window.show() 

Nach dem Ausführen, kein Fenster öffnet und nichts passiert. Ich bekomme keine Fehler- oder Warnmeldungen. Irgendwelche Ideen, was hier vor sich geht?

Antwort

1

Das ist richtig. Wenn Sie Ihren Code ausführen, soll nichts passieren, und die Anwendung sollte sofort ohne Fehler beendet werden. Ihr in C++ übersetztes Beispiel wird sich ebenfalls identisch verhalten.

Vielleicht wollten Sie die Ereignisschleife drehen? app.exec() wird das tun.

+0

Es funktioniert jetzt. Was macht 'app.exec()' hier? – NVaughan

+1

@NVaughan Ohne eine laufende Ereignisschleife tun GUI-Anwendungen im Allgemeinen nichts. 'app.exec()' führt die Ereignisschleife aus, bis die Anwendung beendet wird, so dass das Fenster angezeigt werden kann und die eingehenden Ereignisse verarbeitet werden können. Es ist [dokumentiert] (http://doc.qt.io/qt-5/) qcoreapplication.html # exec). –