Kivyというライブラリを使ってPythonでアプリを作って行く
Python自作サンプル集
Swiftでアプリ開発される方向け
これからプログラミングを始める方へ
プログラミングと資格について
Pythonでマルチタッチアプリを作るために、こちらの本で学んでいます。
Kivyの公式サイトは英語ばかりで泣きそうでしたが、この本を読んで行ったら公式サイトのサンプルアプリも作れるようになりました。
上の本の、2章まで学んだ所で作れるアプリです。
フォルダ「koushiki4」の中に「main.py」ファイルを置き、コードは「main.py」に書きます。
このチュートリアルでは、前回のチュートリアルに続いて電卓を扱いますが、演算機能まではありません。
キーを押したらラベルにその数字が表示されるところまでです。
では、コードです。
今回は多少コードが長いので、コメントもわかる範囲で加えました。
数字キーのところで関数が入れ子になっていて、インデントも複雑になっているので、模写される方はインデントにお気を付けてください。
from kivy.app import App
from kivy.uix.button import Button
from kivy.uix.boxlayout import BoxLayout
from kivy.uix.gridlayout import GridLayout
from kivy.uix.label import Label
class YourApp(App):
    def build(self):
        root_widget=BoxLayout(orientation=’vertical’)
        output_label=Label(size_hint_y=1)
        button_symbols=(‘1′,’2′,’3′,’+’,
              ‘4’,’5′,’6′,’-‘,
              ‘7’,’8′,’9′,’.’,
              ‘0’,’‘,’/’,’=’) 
        #数字ボタン群の高さはラベルの高さの2倍で4列用意 
        #ボタンの表示は数値と一致させる 
         button_grid=GridLayout(cols=4,size_hint_y=2) 
        for symbol in button_symbols: 
                button_grid.add_widget(Button(text=symbol)) 
         #「clear_button」の文字と高さの設定 
           clear_button=Button(text=’clear’,size_hint_y=None,   
            height=100) 
#ラベルに押したボタンを表示させる 
        def print_button_text(instance):  
            output_label.text+=instance.text 
        for button in button_grid.children[1:]:  
            button.bind(on_press=print_button_text)
 #ラベルに表示させる文字の大きさを調整する 
        def resize_label_text(label,new_height):
             label.font_size=0.5*label.height
           output_label.bind(height=resize_label_text)
        def evalute_result(instance):
            try:
                output_label.text=str(eval(output_label.text))
           except SyntaxError:
               output_label.text=’Python syntax error!’
                button_grid.children[0].bind(on_press=evalute_result)
        def clear_label(instance):
            output_label.text=”
            clear_button.bind(on_press=clear_label)
        root_widget.add_widget(output_label)
        root_widget.add_widget(button_grid)
        root_widget.add_widget(clear_button)
        return root_widget
YourApp().run()
Kivyというライブラリを使ってPythonでアプリを作って行く
Python自作サンプル集
Swiftでアプリ開発される方向け
これからプログラミングを始める方へ
プログラミングと資格について
