GUI インターフェイスとコマンド ライン インターフェイスを備えたソフトウェアを使用しています。すべきことは、qtconsole で実行されているかどうかを検出することです。そうである場合、新しい QApplication は作成されず、GUI はブロックされない方法で表示されます。スクリプトが存在すると、ユーザーが下位レベルのものと対話できる cmd オブジェクトが作成されます。
from PyQt4.QtCore import QCoreApplication
from PyQt4.Qt import QApplication
import sys
QApp = QCoreApplication.instance()
new_qapp_bit = False
if QApp == None:
print 'running without the qt console'
new_qapp_bit = True
QApp = QApplication(sys.argv)
else:
print 'found the qt console'
cmd = MyCMDInterface(use_gui=True)
if new_qapp_bit
sys.exit(QApp.exec_())
Windows ではこれは完全に機能し、QCoreApplication.instance() は有効な QApplication を返し、すべてが計画どおりに進みますが、Linux と Mac では None を返します。私はこれをしばらくハッキングしてきましたが、答えがありません。