本文へスキップします。
本文へ
Qt には QT_MAC_DISABLE_FOREGROUND_APPLICATION_TRANSFORM という環境変数があります。この環境変数を設定すると、Qt アプリを起動したときにアプリをフォアグラウンドアプリケーションへ変換する処理を抑制できます。
macOS 13 では、この環境変数を設定することで端末がアクティブでなくなる問題を解消できます。たとえば、次のようにアプリを起動します。
QT_MAC_DISABLE_FOREGROUND_APPLICATION_TRANSFORM=1 ./MyQtApp
ただし、この方法は macOS のバージョンによって挙動が異なります。macOS 15 では、この環境変数を設定すると Qt アプリが常に非アクティブになり、アプリを操作できなくなってしまいます。
そのため、この環境変数をシェルの初期化ファイルで常に設定することは避けてください。macOS 13 で必要な場合に限り、確認した環境で一時的に設定して起動するのが安全です。
また、この環境変数をプログラム内で qputenv() などを使って設定するのは避けてください。利用者の macOS バージョンによってはアプリを操作できなくなるため、アプリケーション側で一律に設定するべきではありません。
macOS 13 / macOS 15 の違いは外部記事の引用ではなく、確認した環境での挙動です。
参考資料
Qt for macOS - 特定の問題
QT_MAC_DISABLE_FOREGROUND_APPLICATION_TRANSFORM を参照している Qt のソース
Apple Developer Documentation: LSUIElement