2016-04-15 15 views
0

現在のドックエリアにあるQDockWidgetの場所を取得するにはどうすればよいですか?たとえば、2つのウィジェットを使用してドッキングエリアを半分に分割した場合、どのフレームが上部にあり、どちらが下部にあるのかを調べるにはどうすればよいですか?ユーザーはもちろん、QDockWidgetsを動的にドラッグアンドドロップすることができます。現在のドックエリアにあるQDockWidgetの場所を取得するにはどうすればいいですか?

答えて

1

両方のジオメトリの値をチェックすることで、どのドックが他のドックの上にあるかを判断できます。あなたとして

次の2つのドックを持っている場合、画面の左上隅が(0,0であるので

QDockWidget dock1; 
QDockWidget dock2; 

がその上に一方が(より少ない y()値を有するであろう)とy値が増加します

if(dock1.geometry().y() < dock2.geometry().y()) 
{ 
    qDebug() << "Dock 1 is above Dock 2"; 
} 

左と右はx()の値を使用して計算できます。ジオメトリが等しい場合、ドックはタブ付きで、上のものはisVisible()の値で決定できます。

ユーザー入力に関連してドックを再計算する場合は、QDockWidget::dockLocationChanged信号に接続することをお勧めします。ドックがドックの位置を変更するか、または現在の位置必要なすべてのケースをカバーする必要があります。

関連する問題