有没有办法将两个 QWidget 附加或锚定在一起?

Is there a way to attach or anchor two QWidgets together?

我开始使用 Qt 并决定构建一个全屏文本编辑器。我想要一个按钮(屏幕截图中带有箭头的按钮)附加到 QDockWidget 上,它可以打开和关闭它,这样按钮始终在屏幕右侧可见,并在停靠栏可见或调整大小时保持锚定到它。

我当前的应用程序是一个简单的全屏文本编辑,在主窗口中设置为 centeralwidget。

我还没有找到使用布局或现有的 addAnchor() 函数执行此操作的方法,因此非常感谢任何帮助或指导。

您可以通过使用文本编辑容器和按钮来实现您想要的效果。 QWidget 实例可以用作其他小部件的“不可见”*** 容器。

所以在 Qt Designer 中你添加一个 widget 作为 main-window 的中心小部件,在这个小部件中你添加文本编辑和按钮,然后你设置垂直布局这个容器小部件。

不要忘记将停靠小部件限制为仅停靠在右侧,您可以这样做:dock->setAllowedAreas(Qt::DockWidgetArea::RightDockWidgetArea); //假设 dock 是指向您的 QDockWidget 的指针。

如果您希望 dockWidget 能够停靠到任何一侧并跟随按钮,您也可以这样做,但它会变得有点复杂。基本上你需要将一个插槽连接到你的 dockWidget 的 dockLocationChanged 并且根据它的停靠位置你需要为容器小部件设置一个新的垂直或水平布局以及文本编辑的顺序和基于按钮的在码头的一侧发生了。

LE:*** 您很可能需要设置所需的边距,因为小部件及其布局都可以有它们,而实际内容的间距可能比您想要的要大。