Kivy 시작하기 11 (진행 바 만들기)

사용 버전: Python 3.6.8, Kivy 1.11.1
사용 프로그램: Atom 1.43.0 x64


기획: URL 소스 자료를 내 컴퓨터에 저장하는 앱.


진행 바만 만들면 기획한 것은 거의 다 했다고 볼 수 있습니다.
For progress 영역에 Progress를 넣어줍니다.


size_hint_y는 y에만 크기 비율을 주는 것이고, None을 사용하고, Height에 직접적인 고정 값을 줄 수도 있습니다.
ProgressBar 위젯은 진행 바를 제공합니다.
size_hint_x는 x에만 크기 비율을 줄 수 있습니다.
pos_hint는 해당 위젯이 표현될 위치를 비율로 나타냅니다.
들어가는 key 값으로는 center_x, center_y, x, y, left, right, top, bottom이 있습니다.





진행 바를 작동시키는 함수를 만듭시다.












이렇게 만들고 보면, cmd 창에서는 잘 작동됩니다.


하지만 App에서는 반응이 없습니다.




이것을 해결하려면, 드디어 Root Widget을 써야 할 것 같네요.
사실 사용해야 할 타이밍을 놓쳐서 App 클래스 만으로 버텨보려고 했는데, 안되겠네요.

RootWidget 용 클래스를 만듭니다.




kv 파일도 수정합니다.
id도 추가합니다.










실행하면 다음과 같이 됩니다.


하지만, 문제는 저장되는 동안 진행 바가 변하지 않는다는 것입니다.
그래서 우리는 thread를 사용할 생각입니다.

thread 함수를 추가했습니다.














self.root.ids['ContentArea'].ids['Save_Button'].disabled는 버튼 활성화, 비활성화를 조절할 수 있게 해줍니다.



잘 작동하는 것을 볼 수 있습니다.

끝.

앱:
https://play.google.com/store/apps/details?id=starlight.jaehwa.one

코드:
https://github.com/shwoghk14/Kivy_for_Starter




카테고리: BlackSmith, Kivy

댓글

이 블로그의 인기 게시물

Python urllib.parse.quote()

Python OpenCV 빈 화면 만들기

Python bytes.fromhex()

Android Minimum touch target size

KiCad 시작하기 2 (PCB 만들기)

tensorflow tf.random.uniform()

tensorflow tf.expand_dims()

Forensics .pyc 파일 .py로 복구하기

Android Notification with Full Screen

Android Java 8+ Api desugaring