버튼을 눌렀을 때 주어진 속도로 슬라이더를 움직이는 가장 간단한 방법은 무엇입니까? 나는 슬라이더에 적절한 신호를 주기적으로 보내는 쓰레드를 생성하는 것을 생각하고있다. 이 작업을 수행하기위한 표준 접근 방식의 예가 있습니까?Qt : 백그라운드에서 반복 슬라이더 이동을 자동화하는 방법은 무엇입니까?
1
A
답변
2
나는 QPropertyAnimation
을 사용하여 작업을 제안합니다. 값을 변경하려는 시작 값, 종료 값 및 곡선을 설정하십시오.
QPropertyAnimation *animation = new QPropertyAnimation(slider,"sliderPosition");
//set the duration (how long the animation should run - will change value faster when shorter)
animation->setDuration(1000);
//set the start value - in this case check if value in range of the slider
animation->setStartValue(slider->minimum());
//same as start value
animation->setEndValue(slider->maximum());
//easingCurve defines if it goes straight or bouncing n stuff
animation->setEasingCurve(QEasingCurve::OutCubic);
// as coyote mentioned, you can loop the animation as well (credit him as well ;))
// -1 defines to run forever
animation->setLoopCount(loopCount)
animation->start();
2
이것은 타이머의 슬라이더 위치를 업데이트하는 문제 일뿐입니다. 타이머를 만들고 업데이트 할 때마다 QSlider::setValue으로 전화하십시오.
값이 최대 값이면 다시 최소값으로 설정하고 계속하십시오.
QSlider* pSlider = new QSlider;
QButton * pButton = new QButton("Go");
QTimer* pTimer = nullptr; // C++ 11 nullptr
// On button click, start a timer
connect(pButton, &QButton::clicked(), [=](){
// exit if already running
if(pTimer)
return;
pTimer = new QTimer;
connect(pTimer, &QTimer::timeout, [=](){
if(pSlider->value()+1 > pSlider->maximum())
pSlider->setValue(pSlider->minimum());
else
pSlider->setValue(++pSlider->value());
});
pTimer->start(1000); // update every second
});
1
QTimer
을 사용할 수 있습니다. 최소 예 :
QSlider *sl = new QSlider;
QTimer *ttt = new QTimer;
sl->setValue(0);
connect(ttt,&QTimer::timeout,[=]() {
sl->setValue(sl->value() + 5);
});
sl->show();
ttt->start(500);
내가하고 new syntax of signals and slots (.pro
파일에 CONFIG += c++11
) 여기 C++11
사용하지만, 당신이 원한다면 물론 당신은 오래된 구문을 사용할 수 있습니다.
1
필자의 지식에 대한 표준 접근 방식은 없습니다.
타이머는 다른 답변으로 제공되지만 animation framework을 사용하고 애니메이션 기간을 조정하여 속도를 조정할 수도 있습니다.
loopcount를 애니메이션 실행 횟수 (예 : 1000000)로 설정하면 장시간 실행 할 수 있습니다.
관련 문제
- 1. Qt moc을 자동화하는 방법은 무엇입니까?
- 2. 백그라운드에서 Qt drawRect
- 3. R에서 함수의 인수에 대한 반복/조합을 자동화하는 방법은 무엇입니까?
- 4. Photoshop을 자동화하는 방법은 무엇입니까?
- 5. Outlook을 자동화하는 방법은 무엇입니까?
- 6. qt 슬라이더 문제 C++
- 7. QGIS (Qt) 작업을 자동화하는 파이썬 스크립트 작성
- 8. UI가없고 백그라운드에서 실행되는 Android 애플리케이션을 자동화하는 도구
- 9. Qt QSlider에서 슬라이더 대신 그림을 그리는 방법은 무엇입니까?
- 10. qt linux에서 위젯 이동을 멈추는 방법?
- 11. 이 프로세스를 자동화하는 방법은 무엇입니까?
- 12. Grails 빌드를 자동화하는 방법은 무엇입니까?
- 13. .NET에서 Winforms를 자동화하는 방법은 무엇입니까?
- 14. ajax 테스트를 자동화하는 방법은 무엇입니까?
- 15. weka에서 테스트를 자동화하는 방법은 무엇입니까?
- 16. 마우스와 키보드를 자동화하는 방법은 무엇입니까?
- 17. eVault 백업을 자동화하는 방법은 무엇입니까?
- 18. .htaccess에서 rewriterule을 자동화하는 방법은 무엇입니까?
- 19. 비밀번호 입력을 자동화하는 방법은 무엇입니까?
- 20. 이 슬라이더를 자동화하는 방법은 무엇입니까?
- 21. 플렉스 애플리케이션을 자동화하는 방법은 무엇입니까?
- 22. Java 애플릿을 자동화하는 방법은 무엇입니까?
- 23. 양식 제출을 자동화하는 방법은 무엇입니까?
- 24. 프로그램 시작을 자동화하는 방법은 무엇입니까?
- 25. 인스턴스 생성을 자동화하는 방법은 무엇입니까?
- 26. 탐색 작업을 자동화하는 방법은 무엇입니까?
- 27. 백그라운드에서 페이지를로드하는 방법은 무엇입니까?
- 28. 슬라이더 이미지 및 배경 반복?
- 29. AngularJS 기본 애니메이션 반복 슬라이더
- 30. 실시간 응용 프로그램에서 백그라운드에서 반복 작업 실행
루프 수를 무기한으로 변경하여 – coyotte508
덕분에 @ coyotte508이 (가) 이미 해당 기능을 잊어 버렸을 수도 있습니다. – Zaiborg