2012-03-22 4 views
2

Qt 프레임 워크를 사용하여 이미지 갤러리 응용 프로그램을 개발하려고합니다. 응용 프로그램은 선택한 폴더에서 모든 이미지를로드하고 해당 이미지는 QListView 컨트롤을 사용하여 표시됩니다. 하지만 지금은 사용자가 볼 수있는 이미지 만로드하여 메모리 사용량을 줄이려고합니다. 보기에 모든 보이는 항목을 가져 오는 직접 함수가 없기 때문에이 작업을 수행 할 수 없습니다.QListView에서 모든 보이는 항목을 가져 오는 간단한 방법

답변

4

indexAt 기능을 사용하여 목록보기의 표시 항목을 가져올 수 있습니다. 자세한 내용과 당신의 다음 문서를 확인할 수 있습니다 예를 들어 :

1

발견했습니다. 당신은 신호로 listwidget의 수직 스크롤 막대를 연결해야합니다 :

connect(ui->listWidget->verticalScrollBar(), SIGNAL(valueChanged(int)), this, SLOT(launch_timer())); 

때마다 사용자가 스크롤의의 valueChanged (int)에 신호가 생략되고 있습니다! 이 문제는 listwidget의 세로 스크롤 막대 값이 변경 될 때마다 webclectic에서 제공하는 코드를 실행하지 말아야한다는 것입니다. 프로그램이 응답하지 않아 너무 짧은 시간 안에 실행될 수 있기 때문입니다.

그래서, 당신은 singotsot 타이머가 있어야하고 webclectic 위에 게시 된 함수를 가리켜 야합니다. launch_timer()가 호출 될 때, 당신은 같은 것을 할 :

if(timer->isActive()){ 
    timer->stop(); 
    timer->start(300); 
    } 
    else 
     timer->start(300); 

및 타이머의 타임 아웃() 신호가 슬롯에 연결됩니다 webclectic에 대해 이야기했다. 이렇게하면 사용자가 마지막으로 빠르게 스크롤하면 마지막 항목 만 업데이트됩니다. 일반적으로 300 밀리 초 이상 보이는 모든 항목이 업데이트됩니다!

관련 문제