添加侧面板而不调整父级的大小

问题描述 投票:0回答:1

我正在使用PySide2编写gui(没有QtDesigner)。

主窗口包含绘图和其他一些小部件。通过菜单选项,我想打开一个侧面板小部件。我希望它的工作方式是整个窗口简单地增长为包含新窗口小部件,而不会更改主窗口中其他任何东西的大小。如何做到这一点?

当前,该小部件只是使用addWidget添加到中央布局中,我也曾尝试将其设置为QDockWidget,但仍将其调整大小(无论如何,我想避免DockWidget带来的额外绒毛)。

所以我有

    ---------
    |content|
    ---------

应该变成

-------------
|new|content|
-------------

但目前我知道了

    ---------
    |new|cnt|
    ---------
python qt pyside2
1个回答
0
投票

在Qt的“客户端”方面很难做好;这确实属于Qt本身。几年前,我已经实现了一个稍微通用的变体,只是为了使其能够在Windows,Mac和KDE上正常工作,代码膨胀到了1000行以上,涵盖了所有棘手的情况,另外还有1000个测试工具。难以实施这些测试令人惊讶,尤其是在X11上,当时无法使用本机X API验证预期的行为。不久之后,我摆脱了这种怪事-无需付出任何努力。

您可以将侧面板作为一个单独的顶级无框架小部件来移动,以使其自身的右上角与内容窗口的左上角对齐,并在垂直方向调整其自身大小以匹配其垂直尺寸。内容窗口。当然,您可以使其稍短(垂直),同时仍将其与内容窗口垂直居中对齐。]

您想要捕获内容窗口的调整大小事件来执行此操作:侧面板应将自身安装为内容窗口的事件过滤器。

您将希望使侧面板成为内容窗口的Qt子级,but

also使其成为顶层窗口,即在其上设置Qt::Window标志,使其成为顶级窗口,而不是内容窗口的子窗口。
© www.soinside.com 2019 - 2024. All rights reserved.