当关闭消息发送到系统时,我需要一个事件处理程序。 任何人都可以帮忙吗?当用户手动关闭系统时的事件处理程序
当我们尝试关闭系统时,如果有任何对话框打开,关闭进程终止。我不希望这发生在我的应用程序中。即如果有任何对话框从我的应用程序打开,我试图关闭我的系统,那么它不应该阻止关机过程。这个实现是可能的吗?
感谢, 拉胡尔
当关闭消息发送到系统时,我需要一个事件处理程序。 任何人都可以帮忙吗?当用户手动关闭系统时的事件处理程序
当我们尝试关闭系统时,如果有任何对话框打开,关闭进程终止。我不希望这发生在我的应用程序中。即如果有任何对话框从我的应用程序打开,我试图关闭我的系统,那么它不应该阻止关机过程。这个实现是可能的吗?
感谢, 拉胡尔
是的,看着NSWorkspaceWillPowerOffNotification
尝试重写QApplication::commitData每当用户关闭系统和您的应用程序仍在运行,应该叫。
下面此功能处理会话 管理。当QSessionManager希望应用程序 提交其所有数据时,它会被调用。
通常这意味着保存所有打开的 文件,获得 用户的许可后。此外,您可能想要 提供一种方法,用户可以通过该方法取消关机。
就是一个例子(从来没有与苹果电脑试了一下,虽然工作正常在我的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();
}
希望这会有所帮助,至于
对不起,我在Mac上复制了同样的示例,它不起作用。 – MacGeek 2010-01-01 10:01:04
我不能使用可可。 – MacGeek 2010-01-01 10:00:27