タイトルとしてQt 4.8を使用してMac OS Xでプログラムを開発しました。 今、私はそれに多くの時間を費やしましたが、まだ解決できない問題に直面しています。子QMainWindowタイトルバーがMac OS Xで消えました(詳細説明を追加)
何らかの操作の後にQMainWindow(Bと呼ばれる)を開くQWidget(Aと呼ばれる)があります。 Bが開かれているとき、Bでブロックする必要があるので、AをBの親として設定し、BのウィンドウモダリティをQt :: WindowModalに設定します。
他のプラットフォームでは、これは私が思ったように動作しますが、Macの場合はBにはタイトルバーがありません。Aのタイトルバーにポップアップして貼り付けました。 Aのタイトルバーにある閉じるボタンはグレー表示されています。つまり、ボタンでBを閉じることはできません。終了するにはQMenuのQActionを終了する必要があります。
Bの代わりにBの親を0(NULL)に設定すると、ウィンドウやLinuxと同じように独立したタイトルバーが表示されます。しかし、BがAによってブロックされたプロパティを失った。
Qt :: CustomizeWindowHintなどのウィンドウフラグを設定しようとしましたが、誰も動作しませんでした。
AとBの間の階層関係を維持する方法はありますか?BにはMacの独立したタイトルバーがありますか?みんなのおかげでよろしく。
ps。私はあなたが疑われるとして、あなたが記述している行動はマックOS X上でシートとして知られている
ありがとうCaleb! QMainWindowを生成し、Qt CreatorによってWindowModalに設定しました。生成されたui_mainwindowファイルのsetWindowModality関数を呼び出します。 最初はフラグを設定しなかったので、Qt :: Windowを試しましたが、状況は同じです。 uiファイルはデフォルトでフラグを設定しませんでした。 私が追加した説明として、これはwindowModalでのみ発生します。 NonModalおよびApplicationModal isfine。それは関連していますか? 私がGoogle上で見つけることができるのは、私がすでに行ったウィンドウのフラグです。 Qt :: Windowにはシートプロパティは含まれていません。 通常のウィンドウの代わりにシートとして動作するのはなぜですか? –