2011-11-10 61 views
0

我有一個Qt應用程序運行在Linux機器上,它在運行X服務器的Windows計算機上顯示UI窗口。我的應用程序的用戶很有可能會註銷Windows或在不退出應用程序的情況下終止X服務器。QApplication和處理X服務器關機

有沒有辦法處理X服務器意外關閉,以便應用程序可以正常關機,保存存儲的數據等?到目前爲止,我已經嘗試將QApplication的aboutToQuit信號綁定到我應用程序中的某個插槽,並在main中捕獲所有異常。沒有按我的預期工作。

回答

0

我不確定,但也許這個QCoreApplication::aboutToQuit()信號可以幫助你。

+0

我在原帖中提到我已經試過了。據我所知,信號永遠不會發射。 – timwoj

1

我認爲最好的方法是嘗試通過signal handling

來處理它取決於如何應用程序正在被殺害的操作系統,優雅地退出可能會或可能無法在所有。

+0

雖然我不確定X服務器死機會發出任何信號。這很奇怪,因爲QApplication循環會以某種方式死掉(或者應用程序會繼續運行),但它似乎並沒有通知任何死亡事件。 – timwoj

+0

這種行爲與你的應用程序發送SIGTERM類似,它會中斷程序的執行,而不會給它任何有關它的機會。我會拋出一個信號處理程序,看看你的應用程序是否能夠獲得任何可以響應的信息。 – Chris