2016-07-06 5 views
3

QDockWidgetが QMainWindow内部を移動されたところ、ユーザが知ることができます信号があります:QMockWidgetからQDockWidgetを移動したときを検出する方法は?

void dockLocationChanged(Qt::DockWidgetArea area) 

問題がQDockWidgetがの外にを移動したときに、この信号が発射されていないということですQMainWindow(ドラッグするか、ドックウィジェットのタイトルバーをダブルクリックします)。

moveEvent()を再実装することなく、そのイベント、を検出する方法はありますか?

答えて

2

この目的のために正確にfloatingプロパティがあり、topLevelChangedシグナルがあります。

+0

これは興味深いことです。 docsは 'topLevelChanged'がいつ追加されたかは言いませんが、Qt5の前にOPが何を返すのか疑問に思っています。 –

+0

あなたは正しいです、私の質問は完全ではありません。とにかく私はそれを受け入れますが、残念ながら、この信号はメインウィンドウから既に別のウィジェットでタブウィジェットをタイル化すると出力されません...(信号 'dockLocationChanged()'もありません) – IAmInPLS

+0

'floating'プロパティの変更'setFloating()'メソッドを使って 'topLevelChanged()'シグナルを送出していません。それは期待されていますか? – harihardik

関連する問題