[英]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.