QTextEdit 컨트롤에서 사용자 정의 스크롤 동작을 구현하려고합니다. 이 동작하는 것 같지만 나는 PageDown 키/페이지 업 키 입력에 문제가있어 :QTextEdit 및 사용자 정의 스크롤 - PageDown/PageUp
신호가 방출되는의 sliderPosition가있다 : 나는 문서 상태 이후 actionTriggered 신호를 통해 스크롤 동작을 제어하고있어 작업에 따라 을 조정했지만 값이 아직 전파되지 않았으므로 (valueChanged() 신호가 아직 방출되지 않았 음을 의미) 시각적 디스플레이가 업데이트되지 않았습니다. 이 신호에 연결된 슬롯에서 을 사용하면 작업 및 슬라이더 값을 기반으로 setSliderPosition() 을 직접 호출하여 모든 작업을 안전하게 조정할 수 있습니다.
내가 거기에서 도달하는 데 필요한 sliderPosition
와 QTimer을 시작
sliderPosition
에 도달 할 때마다
value()
를 증가하고 있습니다). 아쉽게도 PageUp/PageDown 키를 누를 때마다
setValue() 함수 호출
이 PageUp/PageDown 키에 의해 이동되는 캐럿에 의해 트리거되어 자동으로 스크롤 막대 값을 애니메이션 끝으로 이동시킵니다.
호출 스택을 보여줍니다
QAbstractSlider::setValue(int)
??
QMetaObject::activate(QObject*, int, int, void**)
QWidgetTextControl::visibilityRequest(QRectF const&)
QWidgetTextControl::ensureCursorVisible() <--
QWidgetTextControl::setTextCursor(QTextCursor const&) <--
QTextEdit::keyPressEvent(QKeyEvent*)
QWidget::event(QEvent*)
QFrame::event(QEvent*)
QAbstractScrollArea::event(QEvent*)
QTextEdit::event(QEvent*)
QApplicationPrivate::notify_helper(QObject*, QEvent*)
QApplication::notify(QObject*, QEvent*)
QCoreApplication::notifyInternal(QObject*, QEvent*)
...
내가 발행에서 캐럿을 방지하는 방법에 대한 아무 생각이 그 캐럿이 페이지 업/PageDown 키 키 누름으로 인해 이동 QAbstractSlider::SetValue()
전화.
도움을 주시면 감사하겠습니다.
SetValue 신호를'QObject :: disconnect'하려고 했습니까? – Thomas
나는 setValue() 메소드 자체에 의존했기 때문에 Thomas를 사용할 수 없었다. –
아마도 오해가 있었을 지 모르겠지만'setValue()'를 완전히 끊어 버리려는 의도는 아니었다. 특정 연결'disconnect (receiver, SLOT setValue ...), unwanted_sender, SIGNAL (...))', setValue를 사용하는 모든 옵션을 남겨 두어야합니다. 그럼에도 불구하고, 지금은 작동하기 때문에 ...;) – Thomas