我到处搜索,没有找到解决这个问题的方法。我制作了一个 QVBoxLayout,然后对数据进行了网络调用。当数据返回时,我将 4 个自定义小部件添加到此 QVBoxLayout
verticalLayout->addWidget(nsd);
对于前四个,这很好用。一切都按需要出现。但是,我想删除四个小部件中的任何一个,然后在底部添加一个小部件。删除工作正常
verticalLayout->removeWidget(nsd);
delete nsd;
我知道它工作正常,因为那个小部件不再绘制到我的屏幕上。问题是添加小部件并不能完全正常工作。我调用相同的代码
verticalLayout->addWidget(nsd);
检查verticalLayout->count() 告诉我有4 个项目。小部件是使用与之前添加的相同的父小部件创建的。新小部件的绘制事件永远不会被调用。此外,屏幕上显示的 3 显示间隔为 3 个项目。这不像是任何地方都有一个洞。我也尝试添加然后删除,但这是同样的问题。新项目永远不会被绘制,它的大小也永远不会被考虑在内。