Kivy公式サイトのチュートリアル4を作ってみた!(電卓で数字表示)

Kivyというライブラリを使ってPythonでアプリを作って行く

Python自作サンプル集
Swiftでアプリ開発される方向け
これからプログラミングを始める方へ
プログラミングと資格について

Pythonでマルチタッチアプリを作るために、こちらの本で学んでいます。

Kivyの公式サイトは英語ばかりで泣きそうでしたが、この本を読んで行ったら公式サイトのサンプルアプリも作れるようになりました。

上の本の、2章まで学んだ所で作れるアプリです。

Kivy公式テキストチュートリアル4

フォルダ「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でアプリ開発される方向け
これからプログラミングを始める方へ
プログラミングと資格について

投稿者: nekosiestr

プログラミング学習中のロスジェネ(就職氷河期世代)の発達障害者です。 宜しくお願いします。 趣味で写真を撮っています。 プログラミングは、GAS/HTML/CSS/JavaScript/jQuery/PHP、 発達障害は、自閉症スペクトラムASD/ADHD、その他双極性障害やHSP(5人に1人の繊細さん)などの生きづらさを抱えておりますが、それでも楽しく生きて行きたいです!! 写真は、以前はコンパクトデジカメ、現在は、OLYMPUSミラーレス一眼を使っています。