키네틱 스크롤은 Qt로 모바일 애플리케이션을 개발하는 데 매우 중요하며, 기기에서 부드럽지 않다는 것을 알았다. (안드로이드 기기와 아이폰으로 시도). 그것은 약간 고르지, 한 위치에서 다음 위치로 점프하고 손가락 움직임을 따라 지연됩니다. 이것은 느리게 스크롤하려고 할 때 특히 눈에.니다. 장치의 다른 응용 프로그램은 특히 아이폰에서 훨씬 더 부드럽게 스크롤됩니다.QScroller 키네틱 스크롤이 부드럽 지 않다.
버튼이있는 QFrame (ui-> frame)으로 간단한 테스트 프로젝트를 만들었습니다. 단추가 QVBoxLayout에 추가됩니다. 이 프레임은 터치 이벤트에 반응하는 QcrollArea 개체에 추가됩니다. 그리고이 scrollArea가 QGridLayout에 추가되었습니다. 따라서 스크롤링은 수직 방향으로 만 이루어집니다.
나는 QFrame를 기반으로 내 클래스의 생성자에서이 코드를 가지고 : 내 코드에서 뭔가 잘못하고
ui->frame->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Fixed);
ui->frame->setMinimumHeight(1000);
ui->frame->setMaximumHeight(1000);
m_scrollArea = new QScrollArea();
m_scrollArea->setWidget(ui->frame);
m_scrollArea->setWidgetResizable(true);
m_scrollArea->setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
m_scrollArea->setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
m_layout = new QGridLayout();
m_layout->addWidget(m_scrollArea);
m_layout->setContentsMargins(0, 0, 0, 0);
setLayout(m_layout);
QScroller::grabGesture(m_scrollArea, QScroller::LeftMouseButtonGesture);
오전과 나는이 일을 해결하기 위해 무엇을 할 수 있습니다. 다른 사람이 같은 일을 경험하고 있습니까? 내 응용 프로그램이 가능한 네이티브로 보이기를 원하며이 고르지 못한 스크롤은 실제로 정상적인 것이 아닙니다.
추가 정보가 필요하면 알려 드리겠습니다. 테스트 프로젝트를 어딘가에 업로드하고 필요한 경우 장치의 일부 화면 캡처를 추가하려고 할 수 있습니다.
내가 사용하고있는 Qt 버전은 Android 용 5.1.1이며 iOS 용 Qt 5.1.0RC1 자체 빌드입니다.
은 내가 DragStartDistance가 더 반응 스크롤합니다QScrollerProperties sp;
sp.setScrollMetric(QScrollerProperties::DragStartDistance, 0.001);
sp.setScrollMetric(QScrollerProperties::ScrollingCurve, QEasingCurve::Linear);
QScroller* qs = QScroller::scroller(m_scrollArea);
qs->setScrollerProperties(sp);
을 추가했다. 스크롤링 모양을 더 좋게 만들기 위해 조정할 수있는 다른 속성은 무엇입니까? GUI paintEvent()가 QEvent :: Scroll이 QScrollArea에서 수신 될 때마다 호출되지 않는다는 것을 알게되었습니다. QScrollArea는 고르지 못한 스크롤을 일으킬 수 있습니다. 따라서 QEvent :: Scroll을받을 때마다 GUI를 다시 칠하는 코드를 추가 했으므로 스크롤이 부드럽게 보이지만 안드로이드 장치에서는 완벽하지 않습니다.
그 외 어떤 시도를 할 수 있습니까?
내가 도와 줄 수있는 도움을 주시면 감사하겠습니다. 감사!
BartekR, 나는 용액으로 게시물을 업데이트 한 - 정도 나는 적어도 생각한다. 좋은 조언이 있으며 user3794624의 커뮤니티에 오신 것을 환영합니다. 그것도 적절한 사용자 이름으로 변경해야 할 때 :-). –
이것은 실제로 다른 문제를 해결하는 데 도움이되었습니다. tableWidget이 스크롤 속도가 너무 빨라졌습니다. 스크롤 모드를 변경하기 전까지는. QScrollerProperties의 모든 설정은 실제로 도움이되지 못했습니다. –