gpt4 book ai didi

qt - 如何调整 QDockWidget 的大小

转载 作者:行者123 更新时间:2023-12-05 05:07:12 26 4
gpt4 key购买 nike

我在我的主窗口中创建了一个没有 centralwidget 的应用程序,并显示为最大化:

setCentralWidget(0);
setWindowState(Qt::WindowMaximized);

在我的主窗口中,我有三个停靠栏。 dock1设置停靠在leftDockWidgetArea,dock2和dock3设置停靠在rightDockWidgetArea。另外,我安排了 dock2 和 dock3

splitDockWidget(ui->dock2, ui->dock3, Qt::Horizontal);

所以我得到一个结果,三个码头的宽度比例是2:1:1 .

我的问题是如何设置三个停靠栏的宽度以便它们可以排列为1:4:1 .

假设我的屏幕宽度是1024,我试过了

ui->dockWidget_PrimeVis->resize(1000, 1000);

这行不通,因为我发现有人说停靠栏的大小由主窗口控制。所以我发现我可以在主窗口中调用 resizeDocks,例如

resizeDocks({ ui->dock1, ui->dock2,ui->dock3}, { 150,600,150 }, Qt::Horizontal); 

而且它不起作用。此外,由于每个停靠栏都包含一个子类小部件,我也尝试为每个子类小部件设置大小,但同样不起作用。

由于我们可以通过 GUI 手动更改每个 dock 的大小,所以我相信应该有一种方法可以用代码设置每个 dock 的大小,对吧?有人知道吗?

最佳答案

官方documentation说明如下:

QDockWidget 充当其子部件的包装器,使用 setWidget() 设置。自定义大小提示、最小和最大大小以及大小策略应在子窗口小部件中实现。 QDockWidget 会尊重它们,调整自己的约束以包含框架和标题。不应在 QDockWidget 本身上设置大小限制,因为它们会根据是否停靠而改变;停靠的 QDockWidget 没有框架和较小的标题栏。

解决方案:

只需将您在 dockwidget 中显示的小部件子类化。您可以重载不同的方法来更改大小提示。例如:QWidget.minimumSizeHint()

未测试:

您也可以尝试 set the minimum size .但我不知道这是否有效。

关于qt - 如何调整 QDockWidget 的大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59330799/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com