Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
6
Help us understand the problem. What is going on with this article?
@hirohiro77

Kivyを使ってアプリを作ろう(初歩の初歩から始めよう)

More than 1 year has passed since last update.

はじめに

前回は、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ファイルについて解説していきます。

6
Help us understand the problem. What is going on with this article?
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
hirohiro77
インフラ屋さんやってます。構成の設計とか、仮想サーバのお守とか、システムのマイナーアップデートとか、監視など。 [[ また、このサイトにおける掲載内容はあくまで私自身の見解であり、私の所属団体・企業における立場、戦略、意見を代表するものではありません ]]
opt
"INNOVATION AGENCY" を標榜するインターネット広告代理店。エンジニア組織 "Opt Techonologies" を中心にアドテクetc...に取り組んでいます。

Comments

No comments
Sign up for free and join this conversation.
Sign Up
If you already have a Qiita account Login
6
Help us understand the problem. What is going on with this article?