簡體   English   中英

一種在Mac上強制關閉模態QFileDialog的方法

[英]A way to forcefully close modal QFileDialog on Mac

我有一個Qt應用程序,它在某些時候調用QFileDialog::getOpenFileName 但是,在任何時候我的應用程序都可以獲得一個事件,這將使該文件對話框無關緊要,所以我想強行關閉它。

這是我嘗試關閉此對話框的方法:

QWidget *modalWidget = QApplication::activeModalWidget();
if (modalWidget)
    modalWidget->close();

這適用於Windows,但我在Mac上遇到了奇怪的行為。 它不是關閉,而是隱藏對話框。 執行永遠不會離開QFileDialog::getOpenFileName調用,因為它是一個模態對話框,底層應用程序將永久凍結。

為了關閉,我最終通過調用native [NSApp abortModal]來關閉對話框。

請注意,如果在最近的Qt版本中修復了此問題,則可能不需要此解決方法(自Qt 5.8以來未檢查過)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM