2015-01-09 28 views
5

私はメインウィンドウから呼び出されるUIウィンドウを持っています。私はそれが非モーダルであることを望みますが、親の上にとどまり、親が最小化されていればそれで最小化してください。Qt:フォーカスが失われても子ウィンドウを親の上に置いてください。

ユーザーが両方を変更したい場合、ユーザーはそれを可能にし、ユーザーがそれを閉じるまで閉じることはできません。子供は常に親の上にとどまりますが、他のものの上にはありません。

m_child->show(); 
m_child->activateWindow(); 

親の上に上記の場所の子供、それは子供が開始されている間、親に作業することができます...しかし、それがフォーカスを失った場合、子は親の後ろに隠れています。

m_child->show(); 
m_child->activateWindow(); 
m_child->raise(); 

変更なし。子供は私が好きな子がまだ上部に表示されている間、私は親に取り組むことができ、一番上にある...しかし、親を最小限に抑えることだけでなく、子供を最小限にしません

Qt::WindowFlags flags = m_child->windowFlags(); 
m_child->setWindowFlags(flags | Qt::CustomizeWindowHint | Qt::WindowStaysOnTopHint); 
m_child->show(); 
m_child->activateWindow(); 

を使用して

子供はすべてのウィンドウの上にとどまります(親の上に留まるだけです)

"ツールボックススタイル"の効果をどのようにすることができますか?親が最小化されたときの子?

私はすべてのウィンドウフラグも実験しましたが、子供がフォーカスを失ったときに隠れるようにしました。

答えて

9

Qt::Toolフラグをツールボックスウィジェットに追加し、メインウィンドウをその親として設定することで、この動作を実現できます。

を参照してくださいhttp://doc.qt.io/qt-5/qt.html#WindowType-enum

+0

ありがとうございました!私はQt :: Toolフラグを試しましたが、親についてはわかりませんでしたが、これは完全に動作します! – Thalia

+1

Macの場合、振る舞いは好みではありません。アプリを最小化しても、ツールウィンドウは常に上にとどまります... setAttribute(Qt :: WA_MacAlwaysShowToolWindow、false)を試しましたが、違いはありません.. Mac上でのWindowsの動作を模倣するフラグはありますか? – Thalia

関連する問題