初心者から始める!Pythonを用いたGUIウィンドウ作成の10ステップ – Japanシーモア

初心者から始める!Pythonを用いたGUIウィンドウ作成の10ステップ

初心者向けPythonとGUIウィンドウ作成のステップバイステップガイドのカバー画像Python
この記事は約17分で読めます。

 

【サイト内のコードはご自由に個人利用・商用利用いただけます】

このサービスは複数のSSPによる協力の下、運営されています。

この記事では、プログラムの基礎知識を前提に話を進めています。

説明のためのコードや、サンプルコードもありますので、もちろん初心者でも理解できるように表現してあります。

基本的な知識があればカスタムコードを使って機能追加、目的を達成できるように作ってあります。

※この記事は、一般的にプロフェッショナルの指標とされる『実務経験10,000時間以上』を凌駕する現役のプログラマチームによって監修されています。

サイト内のコードを共有する場合は、参照元として引用して下さいますと幸いです

※Japanシーモアは、常に解説内容のわかりやすさや記事の品質に注力しております。不具合、分かりにくい説明や不適切な表現、動かないコードなど気になることがございましたら、記事の品質向上の為にお問い合わせフォームにてご共有いただけますと幸いです。
(送信された情報は、プライバシーポリシーのもと、厳正に取扱い、処分させていただきます。)

はじめに

Pythonを学び始める全ての人々へ、この記事はあなたが待ち望んでいたガイドかもしれません。

ここでは、Pythonを用いたGUIウィンドウ作成の魅力的な世界を解説します。

初めての人でも大丈夫!

この記事を通じて、PythonでGUIウィンドウを作るための手順を簡単に理解し、自分だけのウィンドウを作成できるようになるでしょう。

●Pythonとは

Pythonとは何か、そしてなぜそれがGUIウィンドウ作成のための最良の選択肢であるのかについて説明します。

Pythonは、その直感的な文法と広範囲なアプリケーションで広く使われている高レベルのプログラミング言語です。

○Pythonの特徴

Pythonの主な特徴はその簡潔さと直感性、そしてその強力な能力です。

これは初心者が学びやすく、また経験豊富なプログラマーが素早く効率的に作業を行うのに役立ちます。

また、Pythonはオープンソースのため、無料で自由に使用することができます。

●Python環境の設定

Pythonを使い始める前に、適切な開発環境を設定する必要があります。

○Pythonのインストール

Pythonの最新バージョンは、Python公式ウェブサイトからダウンロードできます。

インストーラーを選択し、指示に従ってインストールを進めます。

○IDEの設定

Pythonのコーディングを容易にするために、Pythonに対応したIDE(統合開発環境)をインストールすることをおすすめします。

代表的なPython IDEにはPyCharmやVisual Studio Codeがあります。

●Pythonの基本

Pythonの基本を理解することで、後のGUIウィンドウ作成がスムーズになります。

○変数と型

Pythonでは、値を保存し利用するために変数が使用されます。

Pythonは動的に型が決定されるので、変数を宣言する際に型を指定する必要はありません。

○制御構文

制御構文は、コードの実行フローを制御します。

主な制御構文には、if-else文、for文、while文などがあります。

●GUIとは

GUI(グラフィカルユーザーインターフェース)は、ユーザーがコンピュータと対話するための視覚的な手段を提供します。

○GUIの基本

GUIは、ウィンドウ、アイコン、メニュー、ダイアログボックスなどの視覚的要素で構成されます。

これにより、ユーザーはマウスやキーボードを使用してコンピュータと対話することができます。

●PythonでのGUIウィンドウ作成

PythonでGUIウィンドウを作成するためには、さまざまなライブラリを使用できます。

ここでは、Pythonの標準ライブラリであるtkinterを使用してGUIウィンドウを作成します。

○tkinterの紹介

tkinterは、PythonでGUIを作成するための標準ライブラリです。

ウィンドウ、ボタン、メニュー、テキストフィールドなど、様々なGUI要素を簡単に作成できます。

また、tkinterはイベント駆動型のプログラミングをサポートしているため、ユーザーのアクション(クリックやキーボード入力など)に反応するアプリケーションを作成することが可能です。

続いて、Pythonとtkinterを用いたGUIウィンドウ作成の具体的な手順とサンプルコードを紹介します。

●サンプルコード:Pythonとtkinterを用いたGUIウィンドウ作成

今回は、初心者の方でも分かりやすいように、Pythonとtkinterを使用したGUIウィンドウの作成を10ステップで解説します。

サンプルコード付きなので、手を動かしながら学習できます。

○サンプルコード1:シンプルなウィンドウの作成

最初に、シンプルなウィンドウを作成します。

import tkinter as tk

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

このコードでは、まずtkinterをtkとしてインポートしています。

次に、Tkクラスのインスタンスを作成し、rootという変数に格納しています。

最後に、mainloopメソッドを呼び出すことで、ウィンドウが表示され続けます。

このコードを実行すると、タイトルバーと最小化、最大化、閉じるボタンだけのシンプルなウィンドウが表示されます。

○サンプルコード2:ボタンを追加する

次に、ウィンドウにボタンを追加します。

import tkinter as tk

root = tk.Tk()

button = tk.Button(root, text='Click Me')
button.pack()

root.mainloop()

このコードでは、Buttonクラスのインスタンスを作成し、buttonという変数に格納しています。

ボタンの親ウィンドウをrootとし、ボタンのラベルに’Click Me’というテキストを指定しています。

最後に、packメソッドを呼び出すことで、ボタンがウィンドウ上に表示されます。

このコードを実行すると、ウィンドウ内に’Click Me’というテキストが表示されるボタンが追加されます。

○サンプルコード3:テキストフィールドを追加する

次に、ウィンドウにテキストフィールドを追加します。

import tkinter as tk

root = tk.Tk()

entry = tk.Entry(root)
entry.pack()

root.mainloop()

このコードでは、Entryクラスのインスタンスを作成し、entryという変数に格納しています。

テキストフィールドの親ウィンドウをrootとして指定し、packメソッドを呼び出すことで、テキストフィールドがウィンドウ上に表示されます。

このコードを実行すると、ウィンドウ内にテキストを入力できるフィールドが追加されます。

○サンプルコード4:ラジオボタンを追加する

次に、ウィンドウにラジオボタンを追加します。

import tkinter as tk

root = tk.Tk()

var = tk.StringVar()
rb1 = tk.Radiobutton(root, text='Option 1', variable=var, value='1')
rb2 = tk.Radiobutton(root, text='Option 2', variable=var, value='2')
rb1.pack()
rb2.pack()

root.mainloop()

このコードでは、まずStringVarクラスのインスタンスを作成し、varという変数に格納しています。

次に、Radiobuttonクラスのインスタンスを作成し、rb1とrb2という変数に格納しています。

ラジオボタンの親ウィンドウをrootとし、テキストと値をそれぞれ指定しています。

最後に、packメソッドを呼び出すことで、ラジオボタンがウィンドウ上に表示されます。

このコードを実行すると、ウィンドウ内に’Option 1’と’Option 2’の2つのラジオボタンが追加されます。1つしか選択できないことを確認してください。

○サンプルコード5:チェックボックスを追加する

次に、ウィンドウにチェックボックスを追加します。

import tkinter as tk

root = tk.Tk()

var1 = tk.BooleanVar()
var2 = tk.BooleanVar()
cb1 = tk.Checkbutton(root, text='Option 1', variable=var1)
cb2 = tk.Checkbutton(root, text='Option 2', variable=var2)
cb1.pack()
cb2.pack()

root.mainloop()

このコードでは、BooleanVarクラスのインスタンスを作成し、var1とvar2という変数に格納しています。

次に、Checkbuttonクラスのインスタンスを作成し、cb1とcb2という変数に格納しています。

チェックボックスの親ウィンドウをrootとし、テキストと変数をそれぞれ指定しています。

最後に、packメソッドを呼び出すことで、チェックボックスがウィンドウ上に表示されます。

このコードを実行すると、ウィンドウ内に’Option 1’と’Option 2’の2つのチェックボックスが追加されます。複数選択可能であることを確認してください。

○サンプルコード6:ドロップダウンメニューを追加する

次に、ウィンドウにドロップダウンメニューを追加します。

import tkinter as tk

root = tk.Tk()

var = tk.StringVar()
options = ['Option 1', 'Option 2', 'Option 3']
menu = tk.OptionMenu(root, var, *options)
menu.pack()

root.mainloop()

このコードでは、まずStringVarクラスのインスタンスを作成し、varという変数に格納しています。

次に、ドロップダウンメニューの選択肢を表すリストを作成し、それをoptionsという変数に格納しています。

最後に、OptionMenuクラスのインスタンスを作成し、menuという変数に格納しています。

親ウィンドウをrootとし、選択肢の変数とリストを指定しています。

最後に、packメソッドを呼び出すことで、ドロップダウンメニューがウィンドウ上に表示されます。

このコードを実行すると、ウィンドウ内に’Option 1’、’Option 2’、’Option 3’の選択肢を持つドロップダウンメニューが追加されます。

○サンプルコード7:スライダーを追加する

次に、ウィンドウにスライダーを追加します。

import tkinter as tk

root = tk.Tk()

slider = tk.Scale(root, from_=0, to=100, orient='horizontal')
slider.pack()

root.mainloop()

このコードでは、Scaleクラスのインスタンスを作成し、sliderという変数に格納しています。

親ウィンドウをrootとし、スライダーの範囲を0から100に、方向を水平に設定しています。

最後に、packメソッドを呼び出すことで、スライダーがウィンドウ上に表示されます。

このコードを実行すると、ウィンドウ内に範囲が0から100の水平スライダーが追加されます。

○サンプルコード8:アラートダイアログを表示する

次に、ウィンドウにアラートダイアログを表示する方法を紹介します。

import tkinter as tk
from tkinter import messagebox

root = tk.Tk()

def showAlert():
    messagebox.showinfo('Information', 'This is an alert dialog')

button = tk.Button(root, text='Show Alert', command=showAlert)
button.pack()

root.mainloop()

このコードでは、まずmessageboxという名前のモジュールをインポートしています。

次に、showAlertという名前の関数を定義し、その中でmessagebox.showinfoメソッドを呼び出しています。

このメソッドは、アラートダイアログを表示します。

引数にはタイトルとメッセージを指定しています。

最後に、Buttonクラスのインスタンスを作成し、ボタンがクリックされたときにshowAlert関数を呼び出すようにしています。

そして、packメソッドを呼び出すことで、ボタンがウィンドウ上に表示されます。

このコードを実行すると、ウィンドウ内に’Show Alert’というボタンが表示されます。

このボタンをクリックすると、’This is an alert dialog’というメッセージを含むアラートダイアログが表示されます。

○サンプルコード9:ウィンドウサイズと位置を設定する

次に、ウィンドウのサイズと位置を設定する方法を紹介します。

import tkinter as tk

root = tk.Tk()

root.geometry('300x200+100+100')

root.mainloop()

このコードでは、Tkクラスのインスタンスであるrootのgeometryメソッドを呼び出しています。

このメソッドには文字列を引数として渡します。

この文字列はウィンドウの幅と高さ、そしてスクリーン上のx座標とy座標を指定します。

このコードを実行すると、サイズが300ピクセル×200ピクセルで、スクリーン上の(100,100)の位置にウィンドウが表示されます。

○サンプルコード10:ウィンドウアイコンを設定する

次に、ウィンドウのアイコンを設定する方法を紹介します。

import tkinter as tk

root = tk.Tk()

root.iconbitmap('icon.ico')

root.mainloop()

このコードでは、Tkクラスのインスタンスであるrootのiconbitmapメソッドを呼び出しています。

このメソッドにはアイコンのパスを文字列として渡します。

この例では、同じディレクトリにある’icon.ico’という名前のアイコンファイルを指定しています。

このコードを実行すると、ウィンドウのアイコンが’icon.ico’に設定されます。

注意点として、このメソッドはICO形式のアイコンファイルのみに対応しています。

●PythonでGUIウィンドウを作成する上での注意点

PythonでGUIウィンドウを作成する際には、いくつかの重要な点に注意を払う必要があります。

まず第一に、GUIプログラムはイベントドリブンプログラミングという考え方に基づいています。

これは、プログラムがユーザーのアクション(例えば、ボタンクリックやキーボード入力など)に反応して動作するというものです。

これに対し、通常のコンソールプログラムは、上から下へと一直線にコードが実行されるという点で異なります。

次に、GUIプログラムは、プログラムの流れを制御するための特別な機能、通常はイベントループと呼ばれるものが必要です。

このイベントループは、ユーザーのアクションを待ち受け、発生したイベントに対応する適切な処理を行います。

最後に、Tkinterでは、画面に表示する各種ウィジェット(ボタンやテキストボックスなど)は親ウィンドウを必要とします。

これは、特定のウィジェットが他のウィジェット内に存在する、という階層的な関係を表します。

この関係を明確にすることは、プログラムの動作と見た目を制御するうえで重要です。

これらの規則を理解し、適切に扱うことで、Pythonを使って洗練されたGUIウィンドウを作成することが可能になります。

○プログラムの終了

Pythonで作成したGUIウィンドウのプログラムを終了する方法について説明します。

import tkinter as tk

root = tk.Tk()

button = tk.Button(root, text='Exit', command=root.destroy)
button.pack()

root.mainloop()

このコードでは、Buttonクラスのインスタンスを作成し、そのcommand引数にroot.destroyというメソッドを指定しています。

このメソッドは、ウィンドウを閉じ、プログラムを終了します。

ユーザーが’Exit’ボタンをクリックすると、プログラムが終了します。

○エラーハンドリング

GUIプログラムでは、エラーが発生した際の処理も重要です。

Pythonの例外処理機構を利用して、エラーが発生した際の対応を記述することができます。

具体的には、try/except文を使ってエラーを捕捉し、エラーが発生した際の処理を記述します。

import tkinter as tk
import tkinter.messagebox as mb

def risky_action():
    try:
        # リスクのある操作を行う
    except Exception as e:
        mb.showerror('Error', f'An error occurred: {e}')

root = tk.Tk()

button = tk.Button(root, text='Risky action', command=risky_action)
button.pack()

root.mainloop()

このコードでは、risky_actionという関数内で例外が発生する可能性のある処理を行っています。

この処理が失敗し、例外が発生した場合、エラーメッセージを表示するダイアログが表示されます。

●PythonでGUIウィンドウを作成する上での注意点

PythonでGUIウィンドウを作成する際には、重要な点に注意を払う必要があります。

まず第一に、GUIプログラムはイベントドリブンプログラミングという考え方に基づいています。

これは、プログラムがユーザーのアクション(例えば、ボタンクリックやキーボード入力など)に反応して動作するというものです。

これに対し、通常のコンソールプログラムは、上から下へと一直線にコードが実行されるという点で異なります。

次に、GUIプログラムは、プログラムの流れを制御するための特別な機能、通常はイベントループと呼ばれるものが必要です。

このイベントループは、ユーザーのアクションを待ち受け、発生したイベントに対応する適切な処理を行います。

最後に、Tkinterでは、画面に表示する各種ウィジェット(ボタンやテキストボックスなど)は親ウィンドウを必要とします。

これは、特定のウィジェットが他のウィジェット内に存在する、という階層的な関係を表します。

この関係を明確にすることは、プログラムの動作と見た目を制御するうえで重要です。

これらの規則を理解し、適切に扱うことで、Pythonを使って洗練されたGUIウィンドウを作成することが可能になります。

○プログラムの終了

Pythonで作成したGUIウィンドウのプログラムを終了する方法について説明します。

import tkinter as tk

root = tk.Tk()

button = tk.Button(root, text='Exit', command=root.destroy)
button.pack()

root.mainloop()

このコードでは、Buttonクラスのインスタンスを作成し、そのcommand引数にroot.destroyというメソッドを指定しています。

このメソッドは、ウィンドウを閉じ、プログラムを終了します。

ユーザーが’Exit’ボタンをクリックすると、プログラムが終了します。

○エラーハンドリング

GUIプログラムでは、エラーが発生した際の処理も重要です。

Pythonの例外処理機構を利用して、エラーが発生した際の対応を記述することができます。

具体的には、try/except文を使ってエラーを捕捉し、エラーが発生した際の処理を記述します。

import tkinter as tk
import tkinter.messagebox as mb

def risky_action():
    try:
        # リスクのある操作を行う
    except Exception as e:
        mb.showerror('Error', f'An error occurred: {e}')

root = tk.Tk()

button = tk.Button(root, text='Risky action', command=risky_action)
button.pack()

root.mainloop()

このコードでは、risky_actionという関数内で例外が発生する可能性のある処理を行っています。

この処理が失敗し、例外が発生した場合、エラーメッセージを表示するダイアログが表示されます。

まとめ

この記事では、初心者向けにPythonを使ったGUIウィンドウ作成について解説しました。

まずはGUIプログラミングの基本的な考え方であるイベントドリブンプログラミングについて説明しました。

続いて、TkinterでGUIアプリケーションを作成する際の要点である、イベントループの役割や、親子関係にあるウィジェットの重要性を説明しました。

また、PythonでGUIウィンドウを適切に閉じるための方法や、エラーハンドリングについても詳しく解説しました。

これらのテクニックを使うことで、よりユーザーフレンドリーなGUIアプリケーションを作成することが可能となります。

プログラミング学習においては、理解したことを実際に試すことが重要です。記事内で示したコード例を自身の環境で試し、結果を確認してみてください。

また、自分だけのGUIアプリケーションを作成するためには、ここで学んだ知識を基に、さらなる学習と挑戦を続けることが重要です。

PythonとGUIウィンドウ作成についての本記事が、あなたのプログラミング学習の一助となることを願っています。