문제

많은 아이콘이 있는 아이콘 모드의 QListView가 있어서 스크롤 막대가 나타나지만 스크롤이 부드럽지 않고 이 IMHO는 각 스크롤에서 한 지점에서 다른 지점으로 갑자기 이동하기 때문에 사용자를 혼란스럽게 합니다.스크롤을 부드럽게 만들고 싶지만 문서에서 아무것도 찾지 못했습니다.가능합니까?

도움이 되었습니까?

해결책

귀하의 질문을 올바르게 이해했다면 위젯의 스크롤 동작을 재정의하고 싶으실 것입니다.사용자가 스크롤 화살표(아래 이미지에서 b로 표시됨)를 누를 때마다 목록 보기가 항목 높이만큼 스크롤되는 것 같습니다.

대체 텍스트 http://qt.nokia.com/doc/4.6/images/qscrollbar-picture.png

목록 보기에 연결된 수직 스크롤 막대의 경우 스크롤 화살표는 일반적으로 현재 위치를 한 "라인" 위 또는 아래로 이동하고 슬라이더 위치를 조금씩 조정합니다.나는 이 경우 선이 아이콘의 높이라고 믿습니다.설치하여 항목 높이를 조정할 수 있습니다. 항목 대리인 (setItemDelegate) 및 sizeHint 메소드를 재정의합니다.하지만 이것이 문제를 해결하는 데 도움이 되지는 않습니다.시도해 볼 수 있는 것은 QListView 하위 항목을 만들고 해당 updateGeometries 메서드를 재정의하는 것입니다.여기에서 수직 스크롤바 단계를 원하는 값으로 설정할 수 있습니다. 이 작업에는 1 또는 2가 될 것 같습니다.다음은 사용자 정의 목록 보기의 예입니다.

class TestListView : public QListView
{
Q_OBJECT
public:
    explicit TestListView(QWidget *parent = 0);

protected:
    virtual void updateGeometries();
};

TestListView::TestListView(QWidget *parent) :
    QListView(parent)
{
    //???
}

void TestListView::updateGeometries()
{
    QListView::updateGeometries();
    verticalScrollBar()->setSingleStep(2);
}

도움이 되었기를 바랍니다. 감사합니다

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top