【发布时间】:2017-03-26 05:37:06
【问题描述】:
当我的应用程序运行时,如果用户注销我想弹出一个窗口显示一些信息并确认注销
class MyApp(QtWidgets.QApplication):
def __init__(self, *args, **kwargs):
super(MyApp, self).__init__(*args, **kwargs)
self.commitDataRequest.connect(lambda manager: self.commitData(manager))
@QtCore.pyqtSlot(QtGui.QSessionManager)
def commitData(self, manager):
print 'shutdown'
if __name__ == '__main__':
qapplication = MyApp(sys.argv)
QtWidgets.QApplication.setQuitOnLastWindowClosed(False) #interaction through tray icon
application.exec_()
问题是它没有进入那个槽方法。
我的应用程序没有主窗口,它的界面通过托盘图标。
【问题讨论】:
-
你能提供一个简单的工作示例来演示这个问题吗?
-
“它没有进入那个插槽”可能有许多不同的原因。您的代码不足以重现问题,因为 self.commitDataRequest 未在其他代码中定义。
-
根据 qt-project.org/doc/qt-4.8/… ,我需要做的就是重写该方法。无论如何,这个错误似乎已经记录在案bugreports.qt-project.org/browse/QTBUG-33034
标签: python pyqt pyqt5 session-management