Macos 用户手动关闭系统时的事件处理程序
我需要一个事件处理程序,当关闭消息被发送到系统时。 有人能帮忙吗 当我们试图关闭系统时,若任何对话框打开,关闭过程终止。我不希望在我的应用程序中发生这种情况。i、 e如果我的应用程序打开了任何对话框,并且我试图关闭系统,那么它不应该阻止关闭过程。这是否可能实现 谢谢,Macos 用户手动关闭系统时的事件处理程序,macos,qt,macos-carbon,Macos,Qt,Macos Carbon,我需要一个事件处理程序,当关闭消息被发送到系统时。 有人能帮忙吗 当我们试图关闭系统时,若任何对话框打开,关闭过程终止。我不希望在我的应用程序中发生这种情况。i、 e如果我的应用程序打开了任何对话框,并且我试图关闭系统,那么它不应该阻止关闭过程。这是否可能实现 谢谢, Rahul是的,请查看NSWorkspaceWillPowerOffNotification 尝试覆盖当用户关闭系统且应用程序仍在运行时,应调用它 此函数用于处理会话 管理层。当 QSessionManager需要该应用程序 提交
Rahul是的,请查看NSWorkspaceWillPowerOffNotification 尝试覆盖当用户关闭系统且应用程序仍在运行时,应调用它 此函数用于处理会话 管理层。当 QSessionManager需要该应用程序 提交其所有数据 通常这意味着保存所有打开的文件 文件,在获得 用户。此外,你可能想 提供一种用户可以使用的方法 取消关机 下面是一个例子(从未在Mac电脑上尝试过;不过在我的ubuntu上效果很好): main.cpp:
#include <QtGui/QApplication>
#include "mainwindow.h"
#include <QSessionManager>
class MyApplication : public QApplication
{
public:
MyApplication(int &argc, char **argv);
virtual void commitData(QSessionManager& sm);
};
MyApplication::MyApplication(int &argc, char **argv):
QApplication(argc, argv)
{
//???
}
void MyApplication::commitData(QSessionManager& sm)
{
// do smth here....
QApplication::commitData(sm);
}
int main(int argc, char *argv[])
{
MyApplication a(argc, argv);
MainWindow w;
w.show();
return a.exec();
}
#包括
#包括“mainwindow.h”
#包括
类MyApplication:公共QApplication
{
公众:
MyApplication(int&argc,字符**argv);
虚拟无效委员会数据(QSessionManager&sm);
};
MyApplication::MyApplication(int&argc,char**argv):
QApplication(argc、argv)
{
//???
}
作废MyApplication::commitData(QSessionManager和sm)
{
//在这里做smth。。。。
QApplication::commitData(sm);
}
int main(int argc,char*argv[])
{
MyApplication a(argc、argv);
主窗口w;
w、 show();
返回a.exec();
}
希望这有帮助,谢谢