本文へスキップします。

本文へ

【全Qt】
【全・Qt】SRAロゴ
H1

FAQ

Q&A:検索

カテゴリー

Q&A:表示

Qt

コア

ウィジェット

QML/Qt Quick

Qt for Python

モデルビュー

画像

ネットワーク

Qt Creator

Windows

Linux

macOS

macOS で端末から Qt アプリを起動すると端末がアクティブでなくなりキー入力できなくなります。端末でキー入力し続けられるようにするにはどうすればよいですか。

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

ライセンスモデルに関する FAQ

QtのLGPL版を利用するとソースコードを開示しないといけないのでしょうか。
開発したアプリケーション部分のソースコードを開示する必要はありません。
Qt自身に手を加えるような使い方をした場合に、改変部分のソースコードの開示義務が発生します。
Qtのライブラリにスタティックリンクした場合も改変とみなされ、該当部分が開示対象となります。
その他のLGPLの留意点は以下のページをご覧ください。
LGPL詳細
QtのLGPL版を利用しているのですが、技術的な問合せなどは可能でしょうか。
SRAでは、LGPL版ユーザ様向けのサポートを提供しています。詳細は以下のページをご覧ください。
LGPLサポート詳細

Qtの商用版とLGPL版を併用することは可能でしょうか。
同一プロジェクト内で、Qtの商用版を使用する開発者がいる場合に、他の開発者がLGPL/GPL版のみを使用することはできません。
なお、Qtを使用して作成されたソースコードに共通部分がある場合は、同一プロジェクトとみなされます。
商用版からLGPL版、またはLGPL版から商用版への移行は可能でしょうか。
LGPL 版で開発をした後に商用版に移ることは原則としてできませんが、商用版からLGPL版への移行は可能です。