タイトルとしてQt 4.8を使用して、Mac OS Xでプログラムを開発しています。今、私はそれに多くの時間を費やしましたが、まだ解決できない問題に直面しています。
何らかの操作の後に QMainWindow (B と呼ばれる) を開く QWidget (A と呼ばれる) があります。B が開かれると、A が B によってブロックされる必要があるため、A を B の親として設定し、B のウィンドウ モダリティを Qt::WindowModal に設定します。
他のプラットフォームでは思った通りに動作しますが、Mac になると、B には独自のタイトル バーがなく、ポップアップして A のタイトル バーにアタッチされているだけです。 A のタイトル バーはグレー表示されています。つまり、ボタンで B を閉じることができません。閉じるには、QMenu の終了 QAction を使用する必要があります。
B の親を B ではなく 0(NULL) に設定すると、Windows や Linux と同じように独立したタイトル バーが表示されます。しかし、B が A によってブロックされたプロパティを失いました。
Qt::CustomizeWindowHint などのウィンドウ フラグを設定しようとしましたが、誰も機能しません。
A と B の間の階層関係を維持し、Mac で B に独立したタイトル バーを与える方法はありますか? みんなの助けをありがとう:)
ps。小さなプログラムを試してみたところ、この状況は WindowModal でのみ発生することがわかりました (NonModal と ApplicationModal は正常に動作します)。