この記事では、あなたのプロジェクトで使用できるトップ5のPython GUIライブラリを紹介します。
それらについて知るために読み続けてください。
GUIって何?
GUI(グラフィカル・ユーザー・インターフェース)とは、フォーム、ドキュメント、テストなど、様々な場面でユーザーからの反応を得るための対話型環境のことです。
従来のコマンドラインインターフェイス(CLI)よりも優れた対話型画面をユーザーに提供します。
List of Best Python GUI Libraries (ベスト Python GUI ライブラリ リスト)
さっそく、PythonのトップGUIライブラリを見てみましょう。
1. PyQT5
PyQT5はPython用のGUI(Graphical User Interface)フレームワークです。
開発者の間で非常に人気があり、GUIはコーディングまたはQTデザイナーによって作成することができます。
QT開発フレームワークは、ウィジェットをドラッグ&ドロップしてユーザーインターフェースを構築することができるビジュアルフレームワークです。
フリーでオープンソースのバインディングソフトウェアであり、クロスプラットフォームのアプリケーション開発フレームワークとして実装されています。
Windows、Mac、Android、Linux、Raspberry PIで使用されています。
PyQT5のインストールには、次のコマンドを使用します。
pip install pyqt5 |
ここでは、簡単なコードを紹介します。
from PyQt5.QtWidgets import QApplication, QMainWindow
import sys
class Window(QMainWindow):
def __init__( self ):
super ().__init__()
self .setGeometry( 300 , 300 , 600 , 400 )
self .setWindowTitle( "PyQt5 window" )
self .show()
app = QApplication(sys.argv)
window = Window()
sys.exit(app.exec_()) |
上記のコードの出力は次のとおりです。
from tkinter import *
class Root(Tk):
def __init__( self ):
super (Root, self ).__init__()
self .title( "Python Tkinter" )
self .minsize( 500 , 400 )
root = Root()
root.mainloop() |
サイエンスソフトのPython開発者チームは、PyQtを使用する利点を強調しています。
PyQtは、デスクトップアプリケーションのクロスプラットフォーム開発のためのQtへのPythonバインディングの成熟したセットです。
PyQtは、洗練されたGUIを形成するための豊富な組み込みウィジェットとカスタムウィジェット作成用ツール、そしてデータベースへの接続と対話のための堅牢なSQLデータベースのサポートを提供します。
2. Python Tkinter
もう一つのGUIフレームワークはTkinterと呼ばれるものです。
Tkinterはデスクトップアプリケーションを開発するために最も人気のあるPython GUIライブラリの1つです。
TKとpython標準のGUIフレームワークを組み合わせたものです。
TkinterはGUIアプリケーションで使用されるラベル、ボタン、テキストボックス、チェックボックスのような多様なウィジェットを提供します。
ボタンコントロールウィジェットはアプリケーションの表示と開発に使用され、キャンバスウィジェットはアプリケーションに線、多角形、矩形などの形状を描画するために使用されます。
さらに、TkinterはPythonのビルトインライブラリなので、他のGUIフレームワークのようにインストールする必要がありません。
以下は、Tkinterを使ったコーディングの例です。
pip install PySide2 |
上記のコードの出力は以下のようになります。
from PySide2.QtWidgets import QtWidgets, QApplication
import sys
class Window(QtWidgets):
def __init__( self ):
super ().__init__()
self .setWindowTitle( "Pyside2 Window" )
self .setGeometry( 300 , 300 , 500 , 400 )
app = QApplication(sys.argv)
window = Window()
window.show() app.exec_() |
3. PySide2
3つ目のPython GUIライブラリはPySide2、またはQT for pythonと呼ぶことができます。
Qt for Pythonは、QtのAPIをPythonアプリケーションで使用するための公式のPythonバインディング(PySide2)と、C++プロジェクトをPythonに公開するために使用できるバインディング生成ツール(Shiboken2)を提供します。
Qt for Pythonは、LGPLv3/GPLv3およびQt商用ライセンスの下で利用可能です。
それでは、インストール方法とサンプルをお見せします。
インストールは、以下の手順で行います。
pip install docutils pygments pypiwin32 kivy.deps.sdl2 kivy.deps.glew |
PySide2を使ってGUIフレームを構築する例を示します。
pip install Kivy |
上記のコードの出力は以下のようになります。
from kivy.app import App
from kivy.uix.button import Button
class TestApp(App):
def build( self ):
return Button(text = " Hello Kivy World " )
TestApp().run() |
この記事もチェック:Python Qtを使ってGUIアプリケーションを実装する方法
4. Kivy
もう一つのGUIフレームワークとして、Kivyを紹介します。
Kivyは、マルチタッチアプリのような革新的なユーザーインターフェイスを利用するアプリケーションを迅速に開発するためのオープンソースのPythonライブラリです。
Kivyは、Linux、Windows、OS X、Android、iOS、Raspberry Pi上で動作します。
サポートされているすべてのプラットフォームで同じコードを実行することができます。
WM_Touch、WM_Pen、Mac OS X Trackpad and Magic Mouse、Mtdev、Linux Kernel HIDなど、ほとんどの入力、プロトコル、デバイスをネイティブで使用することが可能です。
Kivy は、MIT ライセンスのもと、100%無料で使用することができます。
このツールキットは、専門的に開発され、裏付けされ、使用されています。
商用製品に使用することができます。
このフレームワークは安定しており、十分に文書化されたAPIがあり、さらにプログラミングガイドも用意されているので、使い始めるのに役立ちます。
Kivyのグラフィックエンジンは、OpenGL ES 2上で構築されており、最新の高速なグラフィックパイプラインを使用しています。
ツールキットには20以上のウィジェットが付属しており、すべて高い拡張性を持っています。
多くの部分はCythonを使ってC言語で書かれており、リグレッションテストでテストされています。
Kivyのインストールには、依存関係にある “glew “をインストールする必要があります。
以下のようにpipコマンドでインストールできます。
pip install wxPython |
このコマンドを入力し、Enterキーを押すとインストールされます。
その後、Kivyをインストールするために、このコマンドを入力する必要があります。
import wx
class MyFrame(wx.Frame):
def __init__( self ,parent,title):
super (MyFrame, self ).__init__(parent,title = title,size = ( 400 , 300 ))
self .panel = MyPanel( self )
class MyPanel(wx.Panel):
def __init__( self ,parent):
super (MyPanel, self ).__init__(parent)
class MyApp(wx.App):
def OnInit( self ):
self .frame = MyFrame(parent = None , title = "wxPython Window" )
self .frame.show()
return True
app = MyApp()
app.MainLoop() |
インストール後、Kivyの簡単な使用例をお見せします。
上記のコードの出力は以下の通りです。
5. wxPython
wxPythonは、Pythonプログラミング言語用のクロスプラットフォームGUIツールキットです。
Pythonプログラマは、堅牢で高機能なGUIを持つプログラムを簡単かつ容易に作成することができます。
これは、C++で書かれた人気のあるクロスプラットフォームライブラリwxWidgetsのGUIコンポーネントをラップするPython拡張モジュールのセットとして実装されています。
PythonやwxWidgetsと同様に、wxPythonはオープンソースです。
wxPythonはクロスプラットフォームツールキットです。
これは、同じプログラムが修正なしに複数のプラットフォームで実行されることを意味します。
現在、サポートされているプラットフォームは、Microsoft Windows、Mac OS XとmacOS、そしてLinuxです。
それでは、インストール方法を紹介し、簡単なサンプルを作成します。
インストールは、以下のコマンドを入力するだけです。
以下はその例です。
上記のコードの出力は、以下のとおりです。
まとめ
これで5つのPython GUIライブラリを見てきましたが、私の意見では、PySide2とpyQt5がより強力なGUIフレームワークです。
しかし、これらは商用ライセンスが付属しており、それが機能が豊富であることの理由です。
Tkinter、Kivy、wxPythonはPython用のフリーのGUIライブラリです。
あなたのお気に入りのPythonのGUIライブラリは何ですか?