Clutter는 중단 점 외부에서 화면을 업데이트하지 않습니다
-
22-07-2019 - |
문제
코드가 있습니다.
l1 = clutter.Label()
l1.set_position(100,100)
for i in range(0,10):
l1.set_text(str(i))
time.sleep(1)
화면에서 클러 터로 1 ~ 10 초의 수를 표시하도록 설계되었지만 이상한 오류가 발생합니다. 스크립트를 정상적으로 실행하면 화면이 해야하는대로 실행되지만 10 초가 올라갈 때까지 텍스트가 표시되지 않습니다. 그러나 PDB의 중단 점으로 실행하면 텍스트가 잘 나타납니다.
프로그램 시작시 이상한 오류가 발생합니다.
do_wait: drmWaitVBlank returned -1, IRQs don't seem to be working correctly.
Try adjusting the vlank_mode configuration parameter.
그러나 그것이 왜 그것이 브레이크 포인트에서 코드에 영향을 미치는지에 영향을 미치는 이유를 알지 못합니다.
모든 도움은 대단히 감사하겠습니다.
해결책
이미 이것에 대한 답을 알아 냈는지 확실하지 않지만 :
이 문제를 겪는 이유는 시간이 시간에 메인 스레드 (모든 도면이 발생하는 곳)를 차단하기 때문에 라이브러리가 화면을 다시 그리기하지 못하게하기 때문입니다.
예를 들어 코드가 현재 수행 중입니다.
- 클러 터가 화면을 다시 그리기합니다.
- 10 초에 걸쳐 고리하고 텍스트를 10 번 변경합니다.
- 클러 터가 화면을 다시 그리기합니다.
타이머에 무언가를 대기하고 싶다면 조사해야합니다. gobject.timeout_add.
제휴하지 않습니다 StackOverflow