Когда мое приложение работает, если пользователь выходит из системы я хотел бы всплывающее окно отображения некоторую информацию и подтверждающие выход из системыPyQt изящный выход из моего приложения, когда пользователь подписывает прочь
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 не определен среди других. – Trilarion
в соответствии с http://qt-project.org/doc/qt-4.8/session.html#protocols-and-support-on-different-platforms, переопределяя этот метод, все, что мне нужно сделать. В любом случае, эта ошибка уже задокументирована. Https://bugreports.qt-project.org/browse/QTBUG-33034 – mingxiao