내부에 항목이있는 레이아웃 목록이 있습니다. 사용자 정의 테이블을 형성합니다.Qt 레이아웃 청소 및 다른 위젯 추가가 작동하지 않습니다. 고스트 위젯이 그대로 있습니다. Qt 버그?
테이블을 청소하려면 모든 레이아웃을 반복하고 항목을 하나씩 꺼내십시오. 그런 다음 레이아웃을 삭제하십시오.
// Delete all items
QHBoxLayout* row = NULL;
while(!rowLyts_.isEmpty() && (row = rowLyts_.takeAt(0)) != 0)
{
QLayoutItem *item;
while ((item = row->takeAt(0)) != 0)
delete item;
delete row;
}
이것은 작동하는 것 같습니다. 그러나 내가 테이블을 다시 채우기 시작할 때 나는 청소하기 전에 그곳에 있었던 아이템의 "유령"을 본다. 대부분의 경우 그들은 새로운 객체 뒤에 라인 사이에 있습니다. 그리고 그들은 여전히 일합니다.
위젯이있는 레이아웃 만 사용하는 경우에도 마찬가지입니다.
콘텐츠 위젯을 삭제하지 않고 레이아웃의 전체 레이아웃을 정리하기 만하면됩니다. 레이아웃을 정리하는 안전한 방법!
: 레이아웃을 삭제
– OnWhenReady