これを試して:
mdiArea->addSubWindow(new QLabel("Qt::FramelessWindowHint"), Qt::FramelessWindowHint);
MDI 領域自体をフレームレス ウィンドウとして設定したくないのは、それが別のウィンドウに埋め込まれている可能性が高いウィジェットだからです...おそらく既にフレームを持っていないからです。
「サブウィンドウ」の設定は機能するはずですが、addSubWindow(myWidget)
実際には渡されたウィジェットを実際のサブウィンドウにラップするため、それが間違っていました。Qt では、ウィンドウ フラグを の 2 番目のパラメーターとして渡すことができaddSubWindow()
、これらのフラグは実際のサブウィンドウに送られます。
フレームレス ウィンドウでは、ウィンドウをドラッグして移動したり、ウィンドウの端をつかんでサイズを変更したりできないことに注意してください。
最小化ボタンと最大化ボタンだけを消したい (でも閉じるボタンは必要) 場合は、Qt::Dialog
代わりに渡してみてください。
これらも試してみてください:
addSubWindow(new QLabel("Qt::Tool"), Qt::Tool);
addSubWindow(new QLabel("Qt::Tool|Qt::CustomizeWindowHint"), Qt::Tool|Qt::CustomizeWindowHint);
addSubWindow(new QLabel("Qt::Dialog"), Qt::Dialog);
おそらく最良のオプションだと思いQt::Tool|Qt::CustomizeWindowHint
ます(ボタンはありませんが、移動可能でサイズ変更可能です-サイズ変更可能にしたくない場合は、固定サイズを指定してください(setFixedSize()
)。
編集:また試してください:Qt::CustomizeWindowHint|Qt::WindowTitleHint