2

Qtアプリケーションを作成したいと思います。このアプリケーションの主な目的は、ユーザーがコンピューターをシャットダウンする前に、やるべきことがあることをユーザーに警告することです。多くのアプリケーションは、コンピュータがシャットダウンされようとしているときに終了する前にユーザーに保存を要求するので、これは可能だと思いました。また、これらのアプリケーションでユーザーが「キャンセル」と言うことができるように、ユーザーがシャットダウンプロセスを中断できるようにしたいと思います。

Qtでこれを行う方法はありますか?

そうでない場合、少なくともgnomeセッションでこれを行う方法は?(より多くのデスクトップ環境のサポートがあればいいのですが、現在このアプリケーションは私と私の友人だけのためのものであり、私たちは皆gnomeを使用しています。)

信号について読みましたQCoreApplication::aboutToQuit()が、ドキュメントにはユーザーとの対話が許可されていないと記載されています。私のアプリケーションはウィジェット(おそらくシステムトレイアイコンのみ)を使用してQWidget::closeEventいないので、どちらも使用できません。

適切なposixシグナルを処理することは役に立ちますか?しかし、私が知る限り、そのようなシグナルハンドラーには些細なステートメントしか含まれていない可能性があり、ユーザーに本当にシャットダウンするかどうかを尋ねるのは簡単ではありません。

これが役立つ場合の詳細は次のとおりです。ユーザーがコンピューターをシャットダウンする場合、アプリケーションはリポジトリー(監視するように構成されている)が「クリーン」であるかどうか、つまりコミットするものがないかどうかを確認します。コミットするものがある場合、アプリケーションはユーザーに警告し、コミットされていないファイルを無視するか、シャットダウンプロセスを中止するか(変更をコミットするため)をユーザーに選択させる必要があります。

4

1 に答える 1

2

セッション処理を実装する必要があります。オペレーティングシステムがシャットダウンすると、QApplication::commitData()が呼び出され、セッションマネージャにユーザーの操作を許可するように依頼できます。

この関数内では、マネージャーに明示的な許可を求めない限り、ユーザーとの対話はできません。

ここには、まさにあなたのユースケースについての例もあります

于 2012-08-14T08:33:11.657 に答える