1. HOME
  2. ブログ
  3. IT技術
  4. PythonでGUIを組んで簡単なテキストエディタを作ってみた!

PythonでGUIを組んで簡単なテキストエディタを作ってみた!

Pythonで可能なことは機械学習や分析だけじゃない!

現在、最も人気のあるプログラミング言語「Python」。

Pythonというプログラミング言語は、一般的に「機械学習や高等な分析などに使う」というイメージが強いのではないでしょうか?

実は、Pythonで、GUIを組んだりゲームを作成したりすることが可能です。

GUIに関しては、Pythonは標準で「Tkinter」というGUIを構築するライブラリが備わっています。

そのため、何か特別なライブラリをインストールせずとも、GUIを組むことができるのです。

Tkinter以外のライブラリ

GUIを組むためのライブラリは、「Tkinter」以外にも存在します。

どういったGUIライブラリがあるのかというと、人気が高くなってきている「Kivy」

それから、wxWidgetsのPythonバージョンである「wxPython」などがあります。

また、これらのライブラリは、pipコマンドを使えば容易にインストールが可能。

「GUIを組むための環境をつくるのは面倒」と思っていた人にとっては朗報です!

こちらの記事もオススメ!

wxPythonで簡単なGUIを組んでみる

ここからは、実際にPythonでGUIを実際に組んでみたいと思います。

まず、Python本体とGUIを組むためのライブラリであるwxPythonのインストールをしてみましょう。

Pythonのインストール

Pythonのインストールは、公式サイトにあるインストーラーを使えばOKです。

【Pythonの公式サイト】
https://www.python.org/

wxPythonをインストール

Pythonのインストールが済んだら、コマンドプロンプトを起動して、 pip install wxPython と入力してください。

Python本体のインストールと環境変数の設定がきちんとされていれば、問題なくwxPythonをインストールできるでしょう。

次に、コマンドプロンプトで、 python と入力し、Pythonインタプリタを起動させてください。

そして、その状態で、 import wx と入力しましょう。

これらがエラーなく行えれば、環境の構築は完了です。

実際にGUIを組んでみる

さて、次は実際にGUIを組んでみましょう!

まず最初は、「何もないウィンドウを表示」するところから始めてみるとしましょう。

コードはこちらです。

実行と解説

このように、たった5行のコードのみで、任意のサイズのウィンドウを表示できてしまいます。

wx.Frame(None, -1, '空のウィンドウ', size=(500, 250)) は第一引数に親オブジェクトを取り、第二引数でIDを取ります。

第三引数は見てわかるように、GUIウィンドウのタイトルです。

親オブジェクトは今回は None となっていますが、今後いま作成した「フレーム( frame )」にボタンなどを配置していく時には、 frame が親オブジェクトになります。

またIDは、あらかじめ予約してある wx.ID_OPEN などを指定すると簡単にボタンなどが作成可能ですが、通常は -1 か wx.ID_ANY にしておきます

それでは作成したウィンドウに「ボタン」を配置したり、「文字」を表示したりすることで、もう少し実用的なGUIアプリケーションを作成してみましょう!

簡単なテキストエディタを作ろう!

次に、単純なソフトといえるGUIを作ってみましょう!

まずは、コードをご覧ください。

解説

このコードを実行すると、上記の図のような、簡単なテキストエディタになります。

機能としては、保存ボタンを押したときに、カレントディレクトリへ入力したテキストを「wxtest.txt」という名前で保存するものとなっています。

「ボタンを押したときに指定の動作をする」「テキスト入力を受け取る」といったことをしています。

また Button クラスでは、引数として配置座標とラベル名をそれぞれ、 pos=(x, y) 、 label='hogehoge' としてとります。

なんと、たった20行未満のコードを書くだけで、シンプルなテキストエディタが完成しました!

今回は、簡単な例を掲載しましたが、コードを拡張していくことで、様々なアプリを作成することが可能となります。

さいごに

Pythonという言語は、「機械学習」「複雑な分析」に用いられることが多いのは事実です。

では、これらに使われる以外の特徴はないのか?というと、そうではないことをご理解いただけたと思います。

Pythonでは、サイズの大きなソフトを使ったり、面倒な環境構築したりせずに、GUIを組むことができるという特徴があります。

PythonそのものやGUI開発に興味がある人は、本記事を参考にぜひ挑戦してみてくださいね!

また以下の記事では、今回は紹介しきれなかったKivyというGUIライブラリと機械学習を組み合わせたアプリケーションを作成しながら解説しています。

ぜひ読んでみてください!

記事を書いた人

\ 三度の飯よりPython大好き /
(株)ライトコードは、WEB・アプリ・ゲーム開発に強い「好きを仕事にするエンジニア集団」です。
Pythonでのシステム開発依頼・お見積もりはこちらまでお願いします。
また、WEB・スマホ系エンジニアを積極採用中です!
※現在、多数のお問合せを頂いており、返信に、多少お時間を頂く場合がございます。

こちらの記事もオススメ!

オススメのwxPython本

Creating GUI Applications with wxPython
Creating GUI Applications with wxPython

 

書いた人はこんな人

ライトコード社員ブログ
ライトコード社員ブログ
「好きなことを仕事にするエンジニア集団」の(株)ライトコードです!
ライトコードは、福岡本社、東京オフィスの2拠点で事業展開するIT企業です。
現在は、国内を代表する大手IT企業を取引先にもち、ITシステムの受託事業が中心。
いずれも直取引で、月間PV数1億を超えるWebサービスのシステム開発・運営、インフラの構築・運用に携わっています。

システム開発依頼・お見積もりは大歓迎!
また、WEBエンジニアとモバイルエンジニアも積極採用中です!

ご応募をお待ちしております!

関連記事

採用情報

\ あの有名サービスに参画!? /

バックエンドエンジニア

\ クリエイティブの最前線 /

フロントエンドエンジニア

\ 世界を変える…! /

Androidエンジニア

\ みんなが使うアプリを創る /

iOSエンジニア