问题:如果我将应用程序的工具栏从窗口框架中拉出并将其浮动,我将无法再次停靠它。我的窗口层次结构相当复杂,所以我不确定我必须用棍子戳哪一部分才能让它表现出来。
我的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);发布于 2012-02-16 02:09:52
对于堆栈小部件,Qt要求堆栈中的每个小部件都有足够的空间来添加工具栏,然后才允许您停靠它。奇怪的是,在你离开工具栏或展开窗口之前,布局可能会适合屏幕,但Qt可能会对这样的大小不满意。
首先找到你的问题堆栈。接下来,增加窗口大小,修改窗口小部件布局,和/或改变堆栈内子窗口小部件的大小约束,以允许工具栏停靠。
https://stackoverflow.com/questions/9166033
复制相似问题