はじめに
前回は、Kivyの環境を作るところまで、実施しました。
今回は実際に動く(?)ものを作ってみようかと思います
初めてのKivyアプリ
初めてと言ったらやっぱり"Hello World !!"ですよね。
っていうわけで、こんな感じに書きました。
なお、Pythonを使う人ならわかると思いますが、CやJava、PHPでいうところの{}はインデントになっています。
タブでインデントしてもいいのですが、インデント設定を変更できるエディタを使っているなら、半角スペース*4がおすすめです
hello_world_kivy.py
#-*- coding: utf-8 -*-
## Kivyの全機能を使う場合kivyライブラリをインポートします、ほしい機能だけの場合は機能ごとに呼びます
# import kivy
# UIのひな形となるkivy.appを読み込みます
from kivy.app import App
# ボタンラベルなどの機能(kivy.uix.label)
from kivy.uix.label import Label
#クラス生成
class IntroKivy(App):
def build(self):
return Label(text="Hello World !!")
#メイン
if __name__ == "__main__":
IntroKivy().run()
- 実行してみる
kivy hello_world_kivy.py
いろいろ、パーツを増やしてみよう
やっぱりGUIが作れるんだから、パーツをガシガシつけてみたいよねー
というわけで、使いそうなパーツをいろいろつけてみます
LoginDialog_kivy.py
#-*- coding: utf-8 -*-
from kivy.app import App
# ラベルなどの機能(kivy.uix.label)
from kivy.uix.label import Label
# ボタンなどの機能(kivy.uix.button)
from kivy.uix.button import Button
# パーツを配置する機能(kivy.uix.gridlayout)
from kivy.uix.gridlayout import GridLayout
# 入力ボックスを作る機能(kivy.uix.textinput)
from kivy.uix.textinput import TextInput
# システムフォントの指定す機能
from kivy.core.text import LabelBase, DEFAULT_FONT
# IPAフォントのttfを指定
LabelBase.register(DEFAULT_FONT, "ipagoth.ttf")
class LoginScreen(GridLayout):
#見慣れない**kwargsはARGSのことです。
def __init__(self, **kwargs):
super(LoginScreen, self).__init__(**kwargs)
#カラムは2つ用意
self.cols = 2
self.add_widget(Label(text='ユーザ名'))
self.username = TextInput(multiline=False)
self.add_widget(self.username)
self.add_widget(Label(text='パスワード'))
self.password = TextInput(password=True, multiline=False)
self.add_widget(self.password)
self.add_widget(Label(text='トークン'))
self.token = TextInput(password=false, multiline=False)
self.add_widget(self.token)
#
class MyApp(App):
def build(self):
return LoginScreen()
if __name__ == '__main__':
MyApp().run()
- 実行してみる
kivy LoginDialog_kivy.py
実行してみわかりますが、レイアウトなんてこの状態だとあってないようなものです。
なので、次回は、画面をレイアウトするkvファイルについて解説していきます。