【问题标题】:Why does PySide exit after a file dialog?为什么 PySide 在文件对话框后退出?
【发布时间】:2015-03-11 14:54:21
【问题描述】:

我正在编写一个简单的托盘图标应用程序。 但是在将文件对话框添加到菜单操作后,整个应用程序就会退出。

如果我在我的 Mac 上运行代码,它会打印文件名,因此它不会彻底崩溃。 如果我用字符串替换对getOpenFileName 的调用,它会继续运行。

import sys
from PySide import QtCore, QtGui

def share():
    (filename, _) = QtGui.QFileDialog.getOpenFileName()
    print(filename)

app = QtGui.QApplication(sys.argv)

icon = QtGui.QSystemTrayIcon(QtGui.QIcon('images/glyphicons-206-electricity.png'), app)

menu = QtGui.QMenu()
menu.addAction(QtGui.QAction("Share...", menu, triggered=share))
menu.addAction(QtGui.QAction("Quit", menu, triggered=app.quit))


icon.setContextMenu(menu)
icon.show()

app.exec_()

我使用的是 Mac OS X 10.10.1、Python 3.4.2、Qt 4.8.6 和 PySide 1.2.2

【问题讨论】:

    标签: python macos qt pyside


    【解决方案1】:

    默认情况下,当最后一个窗口关闭时,Qt 应用程序会隐式退出。为了防止它,您可以在QGuiApplication 中使用setQuitOnLastWindowClosed

    app = QtGui.QApplication(sys.argv)
    app.setQuitOnLastWindowClosed(false)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-11-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多