3

OSX で Qt のチュートリアルを進めています。私が気づいたことの 1 つは、実行可能ファイル (例: プッシュ ボタンの Hello World の例) を起動すると、アプリがバックグラウンド ウィンドウとして起動し、タスクを切り替えてフォアグラウンドに表示する必要があることです。実行時に Qt アプリケーション ウィンドウを強制的にフォアグラウンド ウィンドウにするにはどうすればよいですか?

手動でタスクを切り替えると、編集、コンパイル、実行、デバッグのサイクルが遅くなることは言うまでもありません)。

4

1 に答える 1

0

観察された動作は、⌘-Y を使用してデバッガーでアプリケーションを起動したときのデバッガーとの対話によるものです。⌘-R を使用して単純に実行すると、期待どおりに動作します。アプリケーション自体は問題ありません。

端末からアプリ バンドル内の実行可能ファイルを直接起動して OS X アプリケーションを起動すると、⌘-Y を使用して実行するのと同じように動作します。それらはすべてバックグラウンドで起動します。Qt はおそらく、⌘-R を介してプロセスを開始するときに Finder が行う魔法を模倣しています。OS X の gdb はそれほど「賢い」わけではなく、おそらくそれには正当な理由があります。

OS X のアプローチは、フォーカスを盗まないようにすることです。これは良いことです。

アプリケーションをデバッグするのではなく実行するだけの場合は、起動コマンドを のように変更しますopen -a '/Users/daj/foo/bar/baz.app'。baz.app はアプリ バンドル フォルダーです。末尾にスラッシュを追加しないでください。

デバッガーが子プロセスを追跡するように誘導できる場合は、もちろん、gdb の下で open 自体を起動できます。これは、子アプリケーションが一番上にある状態で、期待どおりに動作します。

于 2012-06-21T21:14:47.150 に答える