为什么 PySide 在文件对话框后退出?
Why does PySide exit after a file dialog?
我正在编写一个简单的托盘图标应用程序。
但是在将文件对话框添加到菜单操作后,整个应用程序退出。
如果我 运行 我 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
默认情况下,Qt 应用程序在最后一个 window 关闭时隐式退出。为了防止它,您可以在 QGuiApplication
.
中使用 setQuitOnLastWindowClosed
app = QtGui.QApplication(sys.argv)
app.setQuitOnLastWindowClosed(false)
我正在编写一个简单的托盘图标应用程序。 但是在将文件对话框添加到菜单操作后,整个应用程序退出。
如果我 运行 我 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
默认情况下,Qt 应用程序在最后一个 window 关闭时隐式退出。为了防止它,您可以在 QGuiApplication
.
setQuitOnLastWindowClosed
app = QtGui.QApplication(sys.argv)
app.setQuitOnLastWindowClosed(false)