こんにちは!今回は、Pythonを使って簡単にモダンなWindowsアプリを作る方法を紹介します。使うのは「Flet」というライブラリです。プログラミングを勉強し始めた高校生の皆さんでも、この記事を読めば以下のようなサンプルアプリも作れるようになります。
1. はじめに
Fletって何?
Fletは、PythonでGUIアプリを簡単に作るためのライブラリです。「GUI」って聞いたことありますか?Graphical User Interfaceの略で、要するに見た目がかっこいいアプリのことです。
なぜFletを使うの?
- 簡単: Pythonの知識があれば、すぐに始められます。
- モダン: 今風のデザインのアプリが作れます。
- マルチプラットフォーム: Windows, Mac, さらにはWebアプリまで、1つのコードで作れます。
2. Fletの基本
インストール方法
まずは、Fletをインストールしましょう。コマンドプロンプトやターミナルで以下のコマンドを実行します。
pip install flet
基本的な構造
Fletアプリの基本構造はこんな感じです:
import flet as ft
def main(page: ft.Page):
# ここにアプリの中身を書きます
ft.app(target=main)
page
は、アプリの画面全体を表します。この中に、ボタンやテキストなどの部品(Controlsと呼びます)を追加していきます。
3. シンプルなアプリを作ってみよう
さあ、実際にアプリを作ってみましょう!まずは、ボタンを押すと数字が増えていく「カウンターアプリ」を作ります。
import flet as ft
def main(page: ft.Page):
page.title = "カウンターアプリ"
count = 0
def increment(e):
nonlocal count
count += 1
text.value = f"回数: {count}"
page.update()
text = ft.Text(f"回数: {count}")
button = ft.ElevatedButton("クリックしてね", on_click=increment)
page.add(text, button)
ft.app(target=main)
このコードを実行すると、ボタンと数字が表示されたウィンドウが開きます。ボタンをクリックすると、数字が1ずつ増えていきます。
4. UIコンポーネントの紹介
Fletには、たくさんの便利なUIコンポーネントがあります。主なものを紹介しましょう:
ft.Text: テキストを表示
ft.TextField: ユーザーがテキストを入力できる欄
ft.ElevatedButton: 立体的なボタン
ft.Dropdown: 選択肢から1つを選ぶドロップダウンリスト
ft.Checkbox: チェックボックス
ft.RadioGroup: ラジオボタンのグループ
これらを組み合わせて、どんどんアプリを豪華にできます!
5. レイアウトの調整
コンポーネントを綺麗に配置するには、Row
、Column
、Container
を使います。
Row
: 横並びに配置Column
: 縦並びに配置Container
: 他のコンポーネントを囲んで、余白をつけたりできます
例えば、こんな感じ:
page.add(
ft.Row([
ft.Text("左"),
ft.Text("真ん中"),
ft.Text("右")
])
)
6. イベント処理
ユーザーの操作(例:ボタンクリック)に反応するには、イベント処理を使います。多くのコンポーネントはon_click
やon_change
などのイベントハンドラを持っています。
def button_clicked(e):
print("ボタンがクリックされました!")
button = ft.ElevatedButton("クリック", on_click=button_clicked)
7. スタイリング
アプリをもっとカッコよくするには、テーマや色を設定しましょう。
page.theme_mode = "dark" # ダークモード
page.theme = ft.Theme(color_scheme_seed=ft.colors.CYAN) # 全体の色調をシアンに
個別のコンポーネントの色も変更できます:
button = ft.ElevatedButton("青いボタン", color=ft.colors.BLUE)
8. より高度な機能へ
基本を押さえたら、もっと面白いことができます!例えば、外部のWebサイトから情報を取得して表示するアプリを作ってみましょう。
import flet as ft
import requests
def main(page: ft.Page):
def get_joke(e):
response = requests.get("https://official-joke-api.appspot.com/random_joke")
joke = response.json()
joke_text.value = f"{joke['setup']}\n\n{joke['punchline']}"
page.update()
joke_text = ft.Text()
button = ft.ElevatedButton("ジョークを取得", on_click=get_joke)
page.add(joke_text, button)
ft.app(target=main)
このアプリは、ボタンをクリックするたびにランダムな英語のジョークを取得して表示します。
もっと複雑なスクレイピングツールを作りたい場合は、こちらの記事を参考にしてみてください!
9. アプリのパッケージング
作ったアプリを他の人にも使ってもらいたいですよね。PyInstallerを使えば、アプリを1つの実行ファイルにまとめることができます。詳しい方法はこちらの記事で解説しています。
10. まとめ
いかがでしたか?Fletを使えば、こんなに簡単にカッコいいアプリが作れるんです。基本を理解したら、次は自分のアイデアを形にしてみましょう。天気アプリ、TODOリスト、簡単なゲーム…可能性は無限大!
プログラミングは最初は難しく感じるかもしれませんが、少しずつ試していけば必ず上達します。ぜひ、自分だけのオリジナルアプリを作ってみてください!