【ステップアップ】「Pythonの実践」簡単速習‼【グラフィックス/応用⑨】

こんにちはヤク学長です。
データサイエンティスト兼ファーマシストで、アルゴリズムやBI開発を行っています。

本記事の目的は、「pythonの基本操作を知る」ことを目的としています。

https://medical-science-labo.jp/python_advance08/

【本記事のもくじ】

まず、「Python」に真剣に取り組むための概要を解説します。
下記の方法で、簡単に概要を抑えることができます。

  • 1.グラフィックス

それでは、上から順番に見ていきます。
なお、本上記の方法を順番に抑えれば成果が出ます。

記事の内容は「転載 & 引用OK」問題ありません。

1.グラフィックス

子供向けグラフィックスturtle

turtle モジュールは、Pythonの標準ライブラリの中の子供向けグラフィックスライブラリです。turtle モジュールを使うと、Pythonコードで簡単に動きのある図形を描画することができます。

turtle モジュールには、以下のような基本的な関数が含まれています。

  • turtle.forward(distance):タートルを指定した距離だけ前に移動します。
  • turtle.backward(distance):タートルを指定した距離だけ後ろに移動します。
  • turtle.right(angle):タートルを指定した角度だけ右に回転します。
  • turtle.left(angle):タートルを指定した角度だけ左に回転します。
  • turtle.penup():タートルをペンを上げた状態にします。
  • turtle.pendown():タートルをペンを下げた状態にします。
  • turtle.color(color):ペンの色を指定します。
  • turtle.pensize(width):ペンの太さを指定します。

turtle モジュールの基本的な使い方は以下の通りです。

import turtle
# 新しいタートルを作成
t = turtle.Turtle()
# 図形を描画
t.forward(100)
t.right(90)
t.forward(100)
t.right(90)
t.forward(100)
t.right(90)
t.forward(100)
# ウィンドウを閉じる
turtle.done()

このコードでは、turtle モジュールから Turtle クラスをインポートし、新しいタートルを作成しています。タートルの動きを指示するには、forwardright などの関数を呼び出します。最後に、done 関数を呼び出してウィンドウを閉じます。

turtle モジュールには、他にもさまざまな関数やオプションがあります。詳細は、Pythonの公式ドキュメントやインターネット上のチュートリアルを参照してください。

turtleで描画してみる

では、簡単な例として、四角形を描いてみましょう。以下のコードを実行すると、ウィンドウが表示され、四角形が描かれます。

import turtle
# 新しいタートルを作成
t = turtle.Turtle()
# 四角形を描画
for i in range(4):
t.forward(100)
t.right(90)
# ウィンドウを閉じる
turtle.done()

このコードでは、turtle モジュールから Turtle クラスをインポートし、新しいタートルを作成しています。for ループを使って、四角形を描画しています。forward 関数で100の距離を移動し、right 関数で90度右に回転します。4回繰り返すことで、四角形が完成します。

done 関数を呼び出すことで、ウィンドウを閉じます。

GUIツールキットtkiner

tkinter は、Python の標準ライブラリに含まれる、GUI(グラフィカルユーザインターフェース)のためのツールキットです。tkinter を使うと、簡単にウィンドウやボタン、テキストボックスなどの GUI 要素を作成できます。

以下のコードは、簡単な GUI アプリケーションを作成する例です。

import tkinter as tk
# ウィンドウを作成
root = tk.Tk()
# ウィンドウのタイトルを設定
root.title("My App")
# テキストラベルを作成
label = tk.Label(root, text="Hello, Tkinter!")
# ラベルをウィンドウに配置
label.pack()

# ウィンドウを表示
root.mainloop()

tkinter は、Python の標準ライブラリに含まれる、GUI(グラフィカルユーザインターフェース)のためのツールキットです。tkinter を使うと、簡単にウィンドウやボタン、テキストボックスなどの GUI 要素を作成できます。

以下のコードは、簡単な GUI アプリケーションを作成する例です。

python
import tkinter as tk

# ウィンドウを作成
root = tk.Tk()

# ウィンドウのタイトルを設定
root.title("My App")

# テキストラベルを作成
label = tk.Label(root, text="Hello, Tkinter!")

# ラベルをウィンドウに配置
label.pack()

# ウィンドウを表示
root.mainloop()

このコードでは、tkinter モジュールを tk という名前でインポートしています。Tk クラスを使って、ウィンドウを作成しています。title メソッドで、ウィンドウのタイトルを設定しています。

Label クラスを使って、テキストラベルを作成しています。pack メソッドを使って、ラベルをウィンドウに配置しています。

最後に、mainloop メソッドを呼び出して、ウィンドウを表示しています。

この例では、非常にシンプルなアプリケーションですが、tkinter を使って、さまざまな種類のウィジェットを組み合わせて、複雑な GUI アプリケーションを作成することができます。

tkinterで計算機のアプリを作ってみる

以下は、tkinter を使って簡単な電卓(計算機)アプリを作成する例です。

import tkinter as tk
class Calculator:
def __init__(self, master):
self.master = master
master.title("Calculator")
self.display = tk.Entry(master, width=30, borderwidth=5)
self.display.grid(row=0, column=0, columnspan=4, padx=10, pady=10)
self.create_button(1, 0, "1")
self.create_button(1, 1, "2")
self.create_button(1, 2, "3")
self.create_button(2, 0, "4")
self.create_button(2, 1, "5")
self.create_button(2, 2, "6")
self.create_button(3, 0, "7")
self.create_button(3, 1, "8")
self.create_button(3, 2, "9")
self.create_button(4, 0, "0")
self.create_button(4, 1, "+")
self.create_button(4, 2, "-")
self.create_button(5, 0, "*")
self.create_button(5, 1, "/")
self.create_button(5, 2, "C")
self.create_button(4, 3, "=")
def create_button(self, row, column, text):
button = tk.Button(self.master, text=text, padx=30, pady=20, command=lambda: self.button_click(text))
button.grid(row=row, column=column)
def button_click(self, text):
if text == "C":
self.display.delete(0, tk.END)
elif text == "=":
try:
result = eval(self.display.get())
self.display.delete(0, tk.END)
self.display.insert(0, result)
except:
self.display.delete(0, tk.END)
self.display.insert(0, "Error")
else:
self.display.insert(tk.END, text)
root = tk.Tk()
my_calculator = Calculator(root)
root.mainloop()

以下は、tkinter を使って簡単な電卓(計算機)アプリを作成する例です。

python
import tkinter as tk

class Calculator:
def __init__(self, master):
self.master = master
master.title("Calculator")

self.display = tk.Entry(master, width=30, borderwidth=5)
self.display.grid(row=0, column=0, columnspan=4, padx=10, pady=10)

self.create_button(1, 0, "1")
self.create_button(1, 1, "2")
self.create_button(1, 2, "3")
self.create_button(2, 0, "4")
self.create_button(2, 1, "5")
self.create_button(2, 2, "6")
self.create_button(3, 0, "7")
self.create_button(3, 1, "8")
self.create_button(3, 2, "9")
self.create_button(4, 0, "0")
self.create_button(4, 1, "+")
self.create_button(4, 2, "-")
self.create_button(5, 0, "*")
self.create_button(5, 1, "/")
self.create_button(5, 2, "C")
self.create_button(4, 3, "=")

def create_button(self, row, column, text):
button = tk.Button(self.master, text=text, padx=30, pady=20, command=lambda: self.button_click(text))
button.grid(row=row, column=column)

def button_click(self, text):
if text == "C":
self.display.delete(0, tk.END)
elif text == "=":
try:
result = eval(self.display.get())
self.display.delete(0, tk.END)
self.display.insert(0, result)
except:
self.display.delete(0, tk.END)
self.display.insert(0, "Error")
else:
self.display.insert(tk.END, text)

root = tk.Tk()
my_calculator = Calculator(root)
root.mainloop()

この例では、Calculator というクラスを定義して、電卓アプリのためのウィンドウとボタンを作成しています。

__init__ メソッドでは、ウィンドウのタイトルを設定して、入力を表示するためのエントリー(Entry)ウィジェットを作成しています。数字や演算子を表示するためのボタンを create_button メソッドで作成し、grid メソッドを使って、ウィンドウに配置しています。

ボタンがクリックされたときの動作を、button_click メソッドで定義しています。数字ボタンがクリックされたときは、その数字をエントリーに表示します。演算子やクリアボタンがクリックされたときは、それに応じてエントリーの内容を変更します。= ボタンがクリックされたときは、エントリーの内容を eval 関数で評化します。

次に、演算子ボタンとして、加算、減算、乗算、除算、小数点、イコールのボタンを作成します。それぞれのボタンに対応する計算処理も実装します。

from tkinter import *
class Calculator:
def __init__(self, master):
self.master = master
master.title("Calculator")
self.screen = Text(master, state='disabled', width=30, height=3, background="yellow", foreground="blue")
self.screen.grid(row=0, column=0, columnspan=4, padx=5, pady=5)
self.screen.configure(state='normal')
self.equation = ''
# 1st row
self.create_button(7).grid(row=1, column=0)
self.create_button(8).grid(row=1, column=1)
self.create_button(9).grid(row=1, column=2)
self.create_button('+').grid(row=1, column=3)
# 2nd row
self.create_button(4).grid(row=2, column=0)
self.create_button(5).grid(row=2, column=1)
self.create_button(6).grid(row=2, column=2)
self.create_button('-').grid(row=2, column=3)
# 3rd row
self.create_button(1).grid(row=3, column=0)
self.create_button(2).grid(row=3, column=1)
self.create_button(3).grid(row=3, column=2)
self.create_button('*').grid(row=3, column=3)
# 4th row
self.create_button('AC').grid(row=4, column=0)
self.create_button(0).grid(row=4, column=1)
self.create_button('.').grid(row=4, column=2)
self.create_button('/').grid(row=4, column=3)
# 5th row
self.create_button('=', width=20).grid(row=5, column=0, columnspan=4)
def create_button(self, num, width=5):
return Button(self.master, text=num, width=width, command=lambda: self.click(num))
def click(self, key):
if key == 'AC':
self.equation = ''
self.screen.configure(state='normal')
self.screen.delete('1.0', END)
elif key == '=':
try:
result = str(eval(self.equation))
self.screen.delete('1.0', END)
self.screen.insert(END, result)
self.equation = result
except:
self.screen.delete('1.0', END)
self.screen.insert(END, 'Error')
else:
self.equation += str(key)
self.screen.insert(END, key)
root = Tk()
calculator = Calculator(root)
root.mainloop()

これで計算機アプリが完成しました。数字ボタンを押していき、演算子ボタンで計算式を組み立て、イコールボタンで計算結果を表示することができます。

Windows上でアプリを作成する

Windows 上でアプリを作成する場合、Python と tkinter がインストールされている必要があります。通常、Python 3.x を使用することをお勧めします。

Windows に Python をインストールするには、公式サイトからインストーラーをダウンロードしてインストールする方法があります。また、Anaconda や Miniconda などのディストリビューションも使用することができます。

tkinter は、Python 標準ライブラリに含まれているので、別途インストールする必要はありません。

Windows 上で tkinter アプリを作成する場合、以下のような手順になります。

  • 必要なモジュールをインポートする
from tkinter import *
  • ウィンドウを作成する
root = Tk()
  • ウィジェットを作成する
label = Label(root, text="Hello, World!")
button = Button(root, text="Click me!")
  • ウィジェットを配置する
label.pack()
button.pack()
  • イベントループを開始する
root.mainloop()

これで、Hello, World! と書かれたラベルと、クリックすると何かが起こるボタンが表示されるアプリができあがります。

Windows 上でアプリを作成する場合、ツールキットによっては、Windows に特化した機能やデザインを提供することがあります。たとえば、PyQt は、Windows で使われる標準のボタンやメニューを提供することができます。また、tkinter でも Windows のデザインに合わせたテーマを適用することができます。

kivyで簡単なゲームアプリ開発のご紹介

Kivy は、Python でマルチタッチアプリを開発するためのオープンソースフレームワークです。Kivy を使用することで、Android、iOS、Windows、MacOS、Linux など、複数のプラットフォームで動作するアプリを開発することができます。

以下は、Kivy を使用して簡単なゲームアプリを開発する手順の概要です。

  • 必要なモジュールをインストールする

Kivy を使用するためには、まず Kivy をインストールする必要があります。インストール方法については、公式サイトを参照してください。

  • アプリのレイアウトを定義する

Kivy では、アプリのレイアウトを定義するために、KV ファイルを使用します。KV ファイルは、Python のコードとは別に、アプリのインターフェイスを定義するためのファイルです。

以下は、簡単なレイアウトを定義する例です。

<MyButton>:
text: “Click

me!"
on_release: app.button_click()

BoxLayout:
orientation: "vertical"
padding: 20
spacing: 10

Label:
text: "Welcome to my game!"
MyButton:

この例では、MyButton という名前のボタンを定義し、BoxLayout というレイアウトに配置しています。

  • アプリのロジックを定義する

アプリのロジックを定義するために、Python のコードを書きます。アプリのメインクラスを定義し、必要な関数を実装します。

以下は、アプリのクラスを定義し、ボタンがクリックされたときにメッセージを表示する関数を実装した例です。

from kivy.app import App
from kivy.uix.button import Button
from kivy.lang import Builder
class MyButton(Button):
pass
class MyGame(App):
def build(self):
self.root = Builder.load_file("mygame.kv")
def button_click(self):
print("Button clicked!")
if __name__ == "__main__":
MyGame().run()

この例では、MyGame というアプリクラスを定義し、build メソッドで KV ファイルを読み込んでいます。また、button_click メソッドでボタンがクリックされたときにメッセージを表示するようにしています。

  • アプリを実行する

アプリを実行するには、Python スクリプトを実行します。Windows 上であれば、Python スクリプトをダブルクリックして実行することができます。


というわけで、今回は以上です。大変大変お疲れ様でした。
引き続きで、徐々に発信していきます。

コメントや感想を受け付けています。ちょっとした感想でもいいので嬉しいです。

それでは、以上です。

https://medical-science-labo.jp/python_advance10/

最新情報をチェックしよう!