0

我正在使用QFileDialog(both getOpenFileNameand getSaveFileName) 但有一个奇怪的行为:

  • 如果我直接从(ipython)外壳调用它们,我没有问题
  • 如果我从小部件调用它们:
    • 在 mac 10.6 中,它会在打开对话框后关闭对话框(对话框“弹出”然后关闭)
    • 在 mac 10.6 中,如果我使用QtGui.QFileDialog.DontUseNativeDialog
    • 在 win xp(在虚拟机中)它可以在没有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 回答