0

私は(とQFileDialogの両方)を使用していますが、奇妙な動作をしています:getOpenFileNamegetSaveFileName

  • (ipython)シェルから直接呼び出す場合、問題はありません
  • ウィジェットからそれらを呼び出す場合:
    • Mac 10.6 では、ダイアログを開いた直後に閉じます (ダイアログが「ポップ」して閉じます)。
    • Mac 10.6 では、QtGui.QFileDialog.DontUseNativeDialog
    • win XP (virtualbox) では、DontUseNativeDialogオプションなしで動作します
    • win XPでは、DontUseNativeDialogオプションを使用すると、ダイアログを開いた直後に閉じます
    • win 7では、両方とも動作しているようです(他の誰かがテストを行ったので、自分では確認できませんでした)

私の質問:

  • 一般に、ダイアログを開いた直後に閉じる理由は何ですか?
  • すべてではなく、一部のケースでそれを行うのはなぜですか?
  • クロスプラットフォームで動作させるにはどうすればよいですか?
4

1 に答える 1

1

この問題は、ipython とその--pylab開始オプションとの奇妙な競合に起因することがわかりました。したがって、どちらかで回避できます

  • を使用してコードを直接実行するpython xxxx.py
  • または pylab オプションを使用しない

どちらの場合も、qapplication は手動で開始する必要があります。

qapp = QtGui.QApplication([])
my_app = MyQtAppWindow(...)
my_app.exec_()

ただし、なぜ競合が発生するのかはまだわかりません。

于 2014-04-03T13:03:36.153 に答える