QDockWidgetのアクティブウィンドウの取得方法



  • 戸塚と申します。

    現在QDockWidgetを利用した画面制御を考えているのですが、
    アクティブとなったDockWidgetが取得できずに困っております。

    開発環境:
    ・Windows10
    ・VS2015 (C++)
    ・Qt5.10.0

    やりたい事:
    DockWidget内に複数のウィンドウが存在し、Floatingも許可している状態。
    最後にアクティブにしたウィンドウに合わせてメニューやToolbarの状態を変化したい。

    困っている事:
    ウィンドウがfloating中であれば、ウィンドウのアクティブ状態を取得すればなんとかなる事はわかりましたが、MainWindows内にドッキングしている状態(左右での2面表示等)の場合に、どれがアクティブなウィンドウかを取得する方法がわかりません。

    可能であればfloating中のウィンドウも含めて、トップレベル(最後に触った)ウィンドウを取得する方法を知りたいです。

    是非ご回答宜しくお願いいたします。



  • @totsuka Hi, friend, welcome.

    私はアプリの一番上のウィンドウを取得する場合は、Googleの翻訳ツールを使用します。

    メソッドを試すことができます。

    [static] QWindow *QGuiApplication::topLevelAt(const QPoint &pos)
    Returns the top level window at the given position pos, if any.

    [static] QWindowList QGuiApplication::topLevelWindows()
    Returns a list of the top-level windows in the application.
    See also allWindows().

    コミュニケーションには英語を使うのが最善です。


Log in to reply
 

Looks like your connection to Qt Forum was lost, please wait while we try to reconnect.