Установите Qwidget(виджет-док) в qgraphicscene-qt
У меня есть 2 виджета док-станции, где Dock1 имеет все приложение. где я могу увеличить. и я хочу, чтобы реплика того же приложения в Dock2, где он помещается на экран. я пытаюсь добавить Qgraphicscene в dock2, который загружает приложение dock1. не получить ожидаемый результат.
void MainWindow::createDockWindows()
{
win = new QWidget;
QToolBar *tool = new QToolBar;
QGraphicsView view;
QHBoxLayout *layout = new QHBoxLayout;
minimize = new QToolButton(this);
pix = style()->standardPixmap(QStyle::SP_TitleBarMinButton);
minimize->setIcon(pix);
tool->addWidget(minimize);
tool->addWidget(close);
layout->addWidget(tool);
layout->setMargin(0);
layout->setAlignment(Qt::AlignRight);
win->setLayout(layout);
connect(close,SIGNAL(clicked()),this,SLOT(close_window1()));
connect(minimize,SIGNAL(clicked()),this,SLOT(minimize_window1()));
dock1 = new QDockWidget(tr("window 1"), this);
dock1->setAllowedAreas(Qt::LeftDockWidgetArea | Qt::RightDockWidgetArea);
app1 = new QWidget(dock1);
dock1->setMinimumHeight(200);
dock1->setMinimumWidth(200);
dock1->setTitleBarWidget(win);
view1 =new QQuickView();
app1 = QWidget::createWindowContainer(view1, this);
app1->setFocusPolicy(Qt::TabFocus);
view1->setSource(QUrl::fromLocalFile("app1.qml"));
dock1->setWidget(app1);
addDockWidget(Qt::RightDockWidgetArea, dock1);
viewMenu->addAction(dock1->toggleViewAction());
dock2 = new QDockWidget(tr("window 2"), this);
dock2->setMinimumHeight(200);
dock2->setAllowedAreas(Qt::BottomDockWidgetArea | Qt::RightDockWidgetArea);
app2 = new QWidget(dock2);
QGraphicsScene* Scene = new QGraphicsScene(this);
view.setScene(Scene);
QGraphicsProxyWidget *proxy = Scene->addWidget(app1);
view.setDragMode(QGraphicsView::ScrollHandDrag);
//QGraphicsProxyWidget* proxyWidget = scene.addWidget(app1);
//proxyWidget->setFlag(QGraphicsItem::ItemIgnoresTransformations);
// view2 =new QQuickView();
// app2 = QWidget::createWindowContainer(view2, this);
// app2->setFocusPolicy(Qt::TabFocus);
// view2->setSource(QUrl::fromLocalFile("app2.qml"));
dock2->setWidget(app2);
addDockWidget(Qt::BottomDockWidgetArea, dock2);
viewMenu->addAction(dock2->toggleViewAction());
}
я получаю сообщение об ошибке
QGraphicsProxyWidget::setWidget: cannot embed widget 0x1264fff0 which is not a toplevel widget, and is not a child of an embedded widget
как я могу показать копию приложения dock1 в dock2 и подогнать app1 к экрану dock2... в общем, я хочу, чтобы dock1 был увеличенным видом, а dock2 будет уменьшенным видом того же приложения. Я пытаюсь реализовать масштабирование и панорамирование.