Как разрешить QDockWidget стыковаться с несколькими экземплярами QMainWindow

У меня есть приложение Qt5.11.0 (на OSX10.13 и CentOS7.4) с несколькими QMainWindows. Я хотел бы, чтобы пользователи могли стыковать любой заданный QDockWidget в приложении с любым из экземпляров QMainWindow.

В приведенном ниже примере кода показано приложение с двумя QMainWindows и одним QDockWidget. Я могу отстыковать и повторно пристыковать QDockWidget к первому QMainWindow, к которому он был прикреплен, и к нему, однако, если я наведу отсоединенный QDockWidget над вторым QMainWindow, QDockWidget и второй QMainWindow будут игнорировать друг друга, а не стыковаться вместе, как ожидалось:

#include <QApplication>
#include <QMainWindow>
#include <QDockWidget>
#include <QLabel>

int
main( int argc, char *argv[] ) {
    QApplication app( argc, argv );

    QMainWindow* mw1 = new QMainWindow();
    QMainWindow* mw2 = new QMainWindow();

    mw1->setWindowTitle( "Main Window 1" );
    mw2->setWindowTitle( "Main Window 2" );

    mw1->setCentralWidget( new QWidget() );
    mw2->setCentralWidget( new QWidget() );

    QDockWidget* dockWidget = new QDockWidget( "Stepchild", mw1 );
    QLabel* label = new QLabel( "Hello World" );
    dockWidget->setWidget( label );

    mw1->addDockWidget( Qt::LeftDockWidgetArea, dockWidget );

    mw1->show();
    mw2->show();

    QRect first = mw1->geometry();
    int pixeloffset = 200;
    mw2->setGeometry( first.x() + pixeloffset, 
                      first.y() + pixeloffset, 
                      first.width(), 
                      first.height() );

    return app.exec();
}

Как я могу позволить моему QDockWidget, указанному выше, стыковаться в любом из QMainWindows в приложении?

Спасибо --


person lcikgl    schedule 11.02.2019    source источник
comment
Продолжив поиск, я нашел еще несколько релевантных ссылок. Во-первых, очень тесно связанный билет: stackoverflow.com/ questions / 35287958 / (похоже на этот пост, хотя в процитированном вопросе также спрашивается о стыковке с другими виджетами док-станции, которые мне здесь не нужны)   -  person lcikgl    schedule 14.02.2019
comment
Также отчет об ошибке, по-видимому, еще не оцененный на момент написания этой статьи, сообщающий об этом как о предполагаемой ошибке в Qt: bugreports.qt.io/browse/QTBUG-64595   -  person lcikgl    schedule 14.02.2019
comment
Также портированное решение, хотя и вызвавшее некоторую критику (см. Выше) за недостатки: qtcentre.org/threads/   -  person lcikgl    schedule 14.02.2019
comment
Также полезная частичная подсказка: stackoverflow.com/questions/38221768/   -  person lcikgl    schedule 14.02.2019