Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/qt/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/unity3d/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Qt 为什么我的QWidget停止扩展以适合其孩子?_Qt - Fatal编程技术网

Qt 为什么我的QWidget停止扩展以适合其孩子?

Qt 为什么我的QWidget停止扩展以适合其孩子?,qt,Qt,这是我的Qt应用程序的屏幕截图。我模糊了一切不重要的东西。看右下角 该“注释”位是一个QGroupBox包含QTextEdit,它被裁剪,因为一些包含QWidget的部分没有扩展以适应它 到目前为止,我已经看到窗口小部件在默认情况下扩展以适应其内容(只要子窗口小部件在其可见之前添加到布局中,这就是这里正在发生的事情),但突然之间,这种情况不再发生。如果我手动展开窗口,“注释”框按预期布局 最里面的QTextEdit调用了setMinimumHeight,我已经验证了层次结构中的每个小部件在其s

这是我的Qt应用程序的屏幕截图。我模糊了一切不重要的东西。看右下角

该“注释”位是一个
QGroupBox
包含
QTextEdit
,它被裁剪,因为一些包含
QWidget
的部分没有扩展以适应它

到目前为止,我已经看到窗口小部件在默认情况下扩展以适应其内容(只要子窗口小部件在其可见之前添加到布局中,这就是这里正在发生的事情),但突然之间,这种情况不再发生。如果我手动展开窗口,“注释”框按预期布局

最里面的
QTextEdit
调用了
setMinimumHeight
,我已经验证了层次结构中的每个小部件在其
sizePolicy
中都设置了
QSizePolicy::GrowFlag
。我已对源代码进行了grep,以检查我是否未在应用程序中的任何位置设置最大大小。是的,
QTextEdit
位于
QGroupBox
的布局中

Qt似乎在说“我会自动扩展主窗口以适应内容,但只会达到一个极限。”


为什么会发生这种情况?我该如何阻止它?或者更确切地说,我如何让它继续有效的自动调整大小行为,而不管子窗口小部件的大小/深度如何?

您需要考虑主窗口的宽度和高度,QWidget无法扩展到该宽度/高度大小。我是说,主窗口到目前为止已经选择了自己的宽度和高度来适应内容,当您运行应用程序,然后展开主窗口,使文本编辑正确可见时,您可以将窗口缩小到多大程度?缩小到足以裁剪许多小部件的程度。也许这与QSizePolicy::ShrinkFlag有关,但只有当父小部件对小部件施加了一些“压力”时,小部件才应该收缩——我的问题是,这种压力来自何处,如何消除?当父控件可以修复时,我不想更改所有子控件的设置。但是父母都有孩子,所以我很困惑。