首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Qt工具栏不会重新停靠

Qt工具栏不会重新停靠
EN

Stack Overflow用户
提问于 2012-02-07 03:31:00
回答 1查看 537关注 0票数 0

问题:如果我将应用程序的工具栏从窗口框架中拉出并将其浮动,我将无法再次停靠它。我的窗口层次结构相当复杂,所以我不确定我必须用棍子戳哪一部分才能让它表现出来。

我的Qt应用程序使用stackWidget作为其中心部件。在堆栈中包含的一个小部件中,我想要一个工具栏和一个图形视图。当我浮动该工具栏时,图形视图将扩展以占用整个屏幕空间,并且拒绝收缩以允许工具栏再次停靠。

相关代码如下。我把它放在它自己的项目中,看看发生了什么,所以在头文件中减去一些额外的定义,这应该会被编译:

代码语言:javascript
复制
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);
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-02-16 02:09:52

对于堆栈小部件,Qt要求堆栈中的每个小部件都有足够的空间来添加工具栏,然后才允许您停靠它。奇怪的是,在你离开工具栏或展开窗口之前,布局可能会适合屏幕,但Qt可能会对这样的大小不满意。

首先找到你的问题堆栈。接下来,增加窗口大小,修改窗口小部件布局,和/或改变堆栈内子窗口小部件的大小约束,以允许工具栏停靠。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9166033

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档