首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >是否修改QDockWidget默认快照位置?

是否修改QDockWidget默认快照位置?
EN

Stack Overflow用户
提问于 2019-03-07 05:10:33
回答 1查看 1.3K关注 0票数 0

我正在尝试将UI从wxWidgets应用程序建模为QT。然而,在最初的应用程序中,他们有Dock小部件,除了占据主窗口之外,它们可以在适当的位置捕捉和移动。

除了主窗口之外,每个框都显示为一个停靠小部件。如果我想要将Datasets窗口(左上角)移到Output Adjustment窗口的右侧,我可以:

因此,现在我的目标是尝试让QT中的UI至少完成主窗口小部件左侧的停靠小部件。在我的例子中,我至少可以在一些麻烦的情况下获得相同的宽度和高度。但是,我不能创建一个像Output Adjustment这样的QDockWidget,并让它紧挨着其他的进行捕捉。另一个问题是,当我试图移动一个dock小部件时,它不会对齐到其他小部件的左边或右边。

这就是我的问题所在。我不能将其捕捉到dock小部件的任何一侧。这是需要硬编码的吗?我知道我在网上看过其他的例子,看起来和这个布局非常相似。然而,它们都是硬编码的。如果随着时间的推移,我可以使用creator添加滑块和工具栏,那就简单多了。如果这不是我必须硬编码的东西,我如何修改我的小部件可以抓拍的位置?我试着做一个网格布局,但是小部件没有进入网格。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-03-07 08:27:51

通过在主窗口中启用停靠嵌套,您可以实现停靠小部件更灵活的放置,包括并排定位停靠小部件。在Qt设计器中,选择主窗口,然后在Property Editor面板中标记dockNestingEnabled复选框(出现在QMainWindow部分中)。或者,您也可以通过在代码中调用QMainWindow::setDockNestingEnabled方法来实现相同的结果。

如果您希望应用程序一开始就像参考应用程序中那样并排排列停靠部件,则必须求助于QMainWindow::splitDockWidget方法。例如,您可以在Qt设计器中创建如下所示的初始排列。

接下来,您可以在主窗口构造函数代码中重新排列停靠小部件,

代码语言:javascript
复制
MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), ui(new Ui::MainWindow) {
  ui->setupUi(this);

  // Changes the dock widgets arrangement.
  splitDockWidget(ui->dock1, ui->dock3, Qt::Orientation::Horizontal);
  splitDockWidget(ui->dock1, ui->dock2, Qt::Orientation::Vertical);
}

这将产生下面的结果。

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

https://stackoverflow.com/questions/55032196

复制
相关文章

相似问题

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