Pythonにおけるguiライブラリ(windows)について現役エンジニアが解説【初心者向け】
初心者向けにPythonにおけるguiライブラリ(windows)について解説しています。ここでは主なguiライブラリとそれぞれの特徴、その中からwxPythonのインストール手順と使用例を説明します。サンプルで動作を確認しましょう。
テックアカデミーマガジンは受講者数No.1のプログラミングスクール「テックアカデミー」が運営。初心者向けにプロが解説した記事を公開中。現役エンジニアの方はこちらをご覧ください。 ※ アンケートモニター提供元:GMOリサーチ株式会社 調査期間:2021年8月12日~8月16日 調査対象:2020年8月以降にプログラミングスクールを受講した18~80歳の男女1,000名 調査手法:インターネット調査
Pythonにおけるguiライブラリ(windows)について、TechAcademyのメンター(現役エンジニア)が実際のコードを使用して初心者向けに解説します。
そもそもPythonについてよく分からないという方は、Pythonとは何なのか解説した記事を読むとさらに理解が深まります。
なお本記事は、TechAcademyのオンラインブートキャンプPython講座の内容をもとに紹介しています。
今回は、Pythonに関する内容だね!
どういう内容でしょうか?
guiライブラリ(windows)について詳しく説明していくね!
お願いします!
目次
guiとは
guiとは、グラフィックユーザーインターフェースの略称で、アプリケーションやソフトの操作を簡単に行う為の操作画面のことを指します。身近なもので例えると普段使用しているパソコンやスマホの操作画面やテレビの設定画面等もguiにあたります。
windowsで利用できるguiライブラリ
windows環境でのPython利用できるguiライブラリは下記のようなものが存在します。
Tkinter
Tkinterは今回紹介するguiライブラリの中でも唯一のPython標準ライブラリです。標準ライブラリなのでセットアップやインストール等は必要なくPythonの環境があればすぐ使用することができます。
Tkinterは標準ライブラリで導入は簡単ですが、他のguiライブラリと比較すると機能面では少し物足りないかもしれません。
Kivy
Kivyはクロスプラットフォーム対応のguiの開発ができるライブラリです。
ゲーム制作に強いguiライブラリですが、日本語での情報が少ないのと、guiを開発する時にPythonコードとは別にCSSに似たKivy独自の言語を必要とする為、guiライブラリの入門としては少しハードルが高いライブラリになります。
PyQt
PyQtとは、C++言語で開発されたQtというGUIツールをPythonで使用できるようにしたものです。PyQtでは、美しいGUI開発を得意とし、これまでに様々なソフト開発に使用された実績があります。
wxPython
wxPythonは、PyQtと同様にC++言語で作成されたwxWidgetsをPythonで使用できるようにしたものです。
Python3でしか動作しませんが、クロスプラットフォームのGUI開発対応で、ライブラリも豊富なことから、より拡張性の高いGUI開発が可能なライブラリになります。
guiライブラリをインストールしてみよう
ここでは先ほど紹介したguiライブラリの中からwxPythonのインストール方法と、簡単なサンプルコードについて紹介します。
まずはじめに、wxPythonをインストールしてみましょう。
wxPythonはpipを使用してインストールが可能なので下記コマンドをターミナル/コマンドプロンプトで実行する事でインストールができます。
pip install wxpython
サンプルコードを参考にwxpythonを利用して簡単なGUIを作成してみましょう。
ここではwxPythonを使用して、ボタンをクリックすると動作する簡単なGUIを作成します。
ボタンはサンプルボタンと終了ボタンを作成し、それぞれクリックしたらメッセージを表示する、クリック後10秒経過後GUIを終了する機能を実装します。
サンプルコード
# -*- coding: utf-8 -*- import wx import sys import time # ボタン1のクリックイベント関数 def click(event): frame.SetStatusText("ボタンがクリックされました。") # ボタン2のクリックイベント関数 def end(event): for i in range(9,-1,-1): frame.SetStatusText('終了ボタンが押されました。' + str(i+1) + "秒後に終了します。") time.sleep(1) sys.exit() app = wx.App() frame = wx.Frame(None, -1, u'GUIサンプル', size=(290, 250)) frame.CreateStatusBar() panel = wx.Panel(frame, -1) # ボタン1/2の設置 button_1 = wx.Button(panel, -1, pos=(60, 40), size=(150, 50) , label = 'サンプルボタン') button_2 = wx.Button(panel, -1, pos=(60, 110), size=(150, 50) , label = '終了ボタン') # ボタン1/2のクリックイベント button_1.Bind(wx.EVT_BUTTON, click) button_2.Bind(wx.EVT_BUTTON, end) frame.Show() app.MainLoop()
実行結果
[サンプルコード実行時]
[サンプルボタンクリック時]
[終了ボタンクリック時]
解説
コード2-4行目では、サンプルコードで使用するモジュールのインポート処理をしています。
コード7-8行目では、ボタン1(サンプルボタン)をクリックした時のイベント内容を記述しています。
コード11-15行目では、ボタン2(終了ボタン)をクリックした時のイベント内容を記述しています。
コード17-29行目では、wxPythonを利用してフォームを作成するコードを記述しています。
コード31-32行目では、作成したフォームを表示する処理を記述しています。
サンプルコードを実行すると実行結果のようなフォームが起動し、サンプルボタン/終了ボタンをクリックするとそれぞれのイベントが起動する事が確認できます。
まとめ
今回は、Pythonにおけるguiライブラリ(windows)について紹介しました。
作成したプログラムにGUIを実装する事で、より操作のしやすいアプリケーション開発が可能になります。
今回は簡単なGUIを作成する方法を紹介しましたが、同様の内容で様々なアプリケーション開発ができるようになるので、是非今回の記事を参考に挑戦してみて下さい。
監修してくれたメンター
菅繕久
現在はフリーランスのエンジニアをしていてプログラミング歴は8年目になります。 |
内容分かりやすくて良かったです!
ゆかりちゃんも分からないことがあったら質問してね!
分かりました。ありがとうございます!
TechAcademyでは、初心者でもPythonを使った人工知能(AI)や機械学習の基礎を習得できるオンラインブートキャンプPython講座を開催しています。
挫折しない学習方法を知れる説明動画や、現役エンジニアとのビデオ通話とチャットサポート、学習用カリキュラムを体験できる無料体験も実施しているので、ぜひ参加してみてください。