いくつかの QDockWidgets を含む QMainWindow があります。各 DockWidget には、他のいくつかのサードパーティのウィジェットが含まれています (ソースにアクセスできません)。これらのウィジェットの一部は、フォーカス イベントとマウス イベントを消費します。私の問題は、ユーザーが DockWidgets のいずれかをクリックしたときを判断することです。DockWidget の子の一部が関連するイベントを消費するため、DockWidget に eventFilter をインストールしても機能しません。「アクティブな」DockWidget を判別する方法はありますか?
1737 次
1 に答える
1
QWidget
を使用してフォーカスのある を取得しQApplication::focusWidget()
ます。
次のようなものを使用できます。
QWidget* wid = QApplication::focusWidget();
QDockWidget* dock = 0;
while (dock != mainWindow && wid != 0)
{
dock = qobject_cast<QDockWidget*>(wid);
if (dock)
break; // its a QDockWidget
wid = wid->parent();
}
于 2013-10-22T07:27:24.070 に答える