Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/158.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
C++ 向QGridLayout添加太多小部件_C++_Qt_Qwidget_Qscrollarea_Qgridlayout - Fatal编程技术网

C++ 向QGridLayout添加太多小部件

C++ 向QGridLayout添加太多小部件,c++,qt,qwidget,qscrollarea,qgridlayout,C++,Qt,Qwidget,Qscrollarea,Qgridlayout,我有一个由设计器创建的UI,带有QGridLayout,其中我从代码中添加了我的自定义小部件。当我添加1~4个自定义小部件时没有问题,但当我尝试添加更多时,它们会重叠 下面是一张图片,用于完成说明: 没有重叠: 重叠: 我正试图找到一种方法,在QGridLayout中添加一些滚动,这样我的自定义小部件就不会在它们之间重叠,我可以与它们进行交互 我尝试使用QScrollArea,但当我添加了4个以上的小部件时,它们继续重叠,并且滚动无法正常工作。在按代码设计时,您是否有同样的问题,而不是使用设计器

我有一个由设计器创建的UI,带有QGridLayout,其中我从代码中添加了我的自定义小部件。当我添加1~4个自定义小部件时没有问题,但当我尝试添加更多时,它们会重叠

下面是一张图片,用于完成说明:

没有重叠:

重叠:

我正试图找到一种方法,在QGridLayout中添加一些滚动,这样我的自定义小部件就不会在它们之间重叠,我可以与它们进行交互


我尝试使用QScrollArea,但当我添加了4个以上的小部件时,它们继续重叠,并且滚动无法正常工作。

在按代码设计时,您是否有同样的问题,而不是使用设计器?我遇到了一些问题,发现编写gui是一种更干净、更优雅的方式,
minimumSize()
sizeHint()
会在您的自定义小部件上返回什么?我认为您没有正确地实现这些功能。

我遇到了这个问题,通过设置this->setMinimumHeight(267)解决了它;其中267是我的小部件的整数高度。

我没有尝试对主ui进行编码,因为它非常简单(有些QLabel带有一些文本和一些图像,中间还有QGridLayout),而且在设计器上进行编码更容易。试着按代码进行编码,尤其是在这样一个简单的gui上。此外,您将获得更简单的代码,更易于理解的代码。我一直认为qt设计器不是一个很好的软件好吧,我会试试。但是你知道有什么方法可以将滚动添加到QGridLayout中吗?QScrollWidget应该这样做。有关示例,请参阅qtSure的文档,抱歉。Qscrollarea是你需要的