-
Python만으로 어플을 만들어보자 #3 (create an application)Programing/python 어플 개발 2022. 4. 17. 23:47반응형
Python으로 어플만들기 3탄:
kivy 실행해보기
kivy도 설치했으니 이제 kivy공식문서를 따라 어플리케이션 개발을 진행해보고자 합니다.
Getting Started 에서 Installing Kivy 를 진행했으니 이제 A first App 이네요.
아직 kivy를 설치하지 않으셨다면 이전 포스트를 참고해주세요
kivy에서는 kivy를 익히기 위한 튜토리얼로 단순한 형태의 핑퐁게임개발을 제공하고 있습니다.
초창기 컴퓨터에 들어가는 게임처럼 생겼군요
그런데 시작 하기 전에 먼저 Create an application 을 보고 오라고 하는군요! 그럼 보고옵시다.
Create an application
여기서는 더욱 간단한 형태의 어플리케이션 구동을 설명하고 있습니다.
우선 가이드의 코드를 그대로 따라해 보겠습니다.
kivy_venv
를 생성했던 디렉토리에main.py
파일을 생성한 뒤,공식문서에 있는 코드를 그대로 복사해 넣어보겠습니다.
import kivy kivy.require('2.1.0') # replace with your current kivy version ! from kivy.app import App from kivy.uix.label import Label class MyApp(App): def build(self): return Label(text='Hello world') if __name__ == '__main__': MyApp().run()
그리고 이 파일을 돌려보겠습니다.
python main.py
많은 수의 log가 print된 뒤, "Hello world"를 출력하는 간단한 어플리케이션이 구동되었습니다!
코드도 간단해서 쉽게 이해하실 수 있으셨으리라 생각합니다.
1. 필요한 패키지, 클래스를 import 해줍니다.
import kivy from kivy.app import App from kivy.uix.label import Label
2. 메인 기능을 구현할 어플리케이션을 class로 정의합니다.
App 클래스를 상속했습니다.
그리고
MyApp
클래스 안에build()
메소드를 통해Label
위젯 인스턴스를 return했습니다.Label
위젯은 속성으로text='Hello world'
를 가졌고, 이 부분이 화면으로 나타나는 부분입니다.class MyApp(App): def build(self): return Label(text='Hello world')
3. 마지막으로 main.py가 구동되면 MyApp이 실행될 수 있도록 해줍니다.
if __name__ == '__main__': MyApp().run()
Customize the application
이제는 문서를 따라서 아주 조금만 더 복잡한 어플리케이션을 구현해봅시다.
main.py의 내용을 아래의 코드로 바꿔서 실행해보겠습니다.
# import from kivy.app import App from kivy.uix.gridlayout import GridLayout from kivy.uix.label import Label from kivy.uix.textinput import TextInput class LoginScreen(GridLayout): def __init__(self, **kwargs): super(LoginScreen, self).__init__(**kwargs) # 칼럼(열)이 2개임을 정의 self.cols = 2 # (1,1 = 1행 1열) self.add_widget(Label(text='User Name')) # (1,2) self.username = TextInput(multiline=False) self.add_widget(self.username) # (2,1) self.add_widget(Label(text='password')) # (2,2) self.password = TextInput(password=True, multiline=False) self.add_widget(self.password) class MyApp(App): def build(self): return LoginScreen() if __name__ == '__main__': MyApp().run()
원래는
MyApp()
클래스 안의build()
함수가Label()
을 return하고 있었지만,이제는 우리가 정의한
LoginScreen()
클래스를 return하고 있습니다.그리고
LoginScreen()
에서는GridLayout
을 상속받아 활용하고 있습니다.self.add_widget()
을 활용해 그리드에 위젯을 차곡차곡 쌓아가고 있습니다.
이
main.py
를 실행시키면 이런 어플리케이션이 나타납니다.반응형'Programing > python 어플 개발' 카테고리의 다른 글
Python만으로 어플을 만들어보자 #6 (Create a package for Android) (1) 2022.04.21 Python만으로 어플을 만들어보자 #5 (A SimplePaint App #2) (1) 2022.04.20 Python만으로 어플을 만들어보자 #4 (A SimplePaint App #1) (0) 2022.04.19 Python만으로 어플을 만들어보자 #2 (installing kivy) (2) 2022.04.17 Python만으로 어플을 만들어보자 #1 (kivy vs Beeware) (1) 2022.04.16