Проблема: если я вытаскиваю панель инструментов моего приложения из оконной рамы и плаваю, я не могу закрепить ее снова.Моя иерархия окон довольно сложна, поэтому я не уверен, какую часть мне нужно ткнуть палкой, чтобы заставить ее вести себя.
Мое приложение Qt использует stackWidget в качестве центрального виджета.В одном из стековых виджетов я хочу панель инструментов и графическое представление.Когда я плаваю на этой панели инструментов, графическое представление расширяется, чтобы занять все пространство экрана, и отказывается уменьшаться, чтобы позволить панели инструментов снова закрепиться.
Соответствующий код указан ниже.Я вставил его в собственный проект, чтобы увидеть, что происходит, поэтому за исключением нескольких дополнительных определений в заголовке, это должно скомпилироваться:
QVBoxLayout* layout0 = new QVBoxLayout(ui->centralWidget);
stack = new QStackedWidget();
layout0->addWidget(stack);
QWidget* screen1 = new QWidget();
QVBoxLayout* layout1 = new QVBoxLayout(screen1);
QToolButton* tool = new QToolButton();
tool->setIcon(QIcon(":/images/sample.bmp"));
tool->setIconSize(QSize(400,400));
QObject::connect(tool,SIGNAL(clicked()),this,SLOT(onPage2()));
layout1->addWidget(tool);
stack->addWidget(screen1);
QWidget* screen2 = new QWidget();
QVBoxLayout* layout2 = new QVBoxLayout(screen2);
QGraphicsView* gview = new QGraphicsView();
layout2->addWidget(gview);
stack->addWidget(screen2);
QToolBar* toolbar = new QToolBar();
toolbar->addAction("home",this,SLOT(onPage1()));
this->addToolBar(Qt::TopToolBarArea,toolbar);