QListWidget에서 모든 항목을 지우려고 할 때 응용 프로그램이 충돌하고 적어도 하나의 항목이 선택됩니다. clearSelection()을 호출하면 프로그램이 충돌하기도합니다 (clearSelection() 호출시). while 루프에서 항목을 제거하면 충돌이 발생합니다. 오류 메시지가QListWidget은 항목을 선택하는 동안 clear()가 호출 될 때 충돌을 발생시킵니다.
ASSERT 수 있습니다 : 파일 /usr/include/qt4/QtCore/qlist.h에서 "! IsEmpty 함수()", 라인 (282)
일부 예제 코드 :
void MainWindow::clearListWidget()
{
// ui->listWidget->clearSelection(); // --> causes crash
// ui->listWidget->clear(); // --> also causes crash
while(ui->listWidget->count()>0) // --> no crash calling count()
ui->listWidget->takeItem(0); // --> crash again
}
언급 한 것처럼 응용 프로그램은 항목을 선택하면 충돌합니다. 아무 것도 선택하지 않으면 위의 방법이 의도 한대로 작동합니다. 나는 우분투에서 Qt 4.8.4로 작업한다.
문제를 해결할 수있는 제안에 대해 감사드립니다.
전체 코드를 해당 컨텍스트로 표시하십시오. 또한 디버거가 충돌을 일으키는 정확한 줄을 알려주는 데 도움이됩니다. –
'QListWidget'을 사용하는 간단한 테스트 케이스가 그것을 재현하지 않기 때문에 여러분이 보여주지 않는 코드가 문제가됩니다. 따라서 문제를 재현 할 수있는 최소한으로 남을 때까지 코드를 자르려면 반드시 시작해야합니다. –