我对QGridLayout
有一个非常基本的疑问。
要在QGridLayout
中添加小部件,我们会将QWidget *
与row
& column
没有(其他一些args)。
现在,为了删除小部件,没有任何功能根据行&移除小部件。列号,例如:
int row, column;
gridObj->remove(row, column);
我认为QGridLayout
必须维护一种QList
来存储小部件&的引用。有职位。那么为什么没有按位置删除小部件的功能呢?
它只有一个删除函数,我们需要为其指定QWidget
对象的引用。
如果这是一个限制,那么这个问题有解决办法吗? 自己维护一个QList是一个解决方案,但它非常繁琐。 谢谢
答案 0 :(得分:2)
我可能会在这里弄错,但是从略读文档中,试试这个:
我总是无法在布局中重新排序窗口小部件,从布局中删除窗口小部件等等......通常,我只是想删除布局并重新添加窗口小部件。 =(
答案 1 :(得分:1)
要按布局位置删除QGridLayout中的窗口小部件,只需使用
即可layout->removeWidget(layout->itemAtPosition(row, column)->widget());
但是,您必须注意以下内容:
addWidget()
。它不适用于添加addLayout()
的嵌套布局。
如果您还需要关心嵌套布局,请参阅
my answer about removing rows and columns from grid layouts。