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ライブラリと機械学習を組み合わせたアプリケーションを作成しながら解説しています。

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

【関連記事】
【前半】KerasとKivyを使って簡易手書き数字認識アプリを作ってみよう【機械学習】
【後半】KerasとKivyを使って簡易手書き数字認識アプリを作ってみよう【機械学習】

ライトコードよりお知らせ

にゃんこ師匠にゃんこ師匠
システム開発のご相談やご依頼はこちら
ミツオカミツオカ
ライトコードの採用募集はこちら
にゃんこ師匠にゃんこ師匠
社長と一杯飲みながらお話してみたい方はこちら
ミツオカミツオカ
フリーランスエンジニア様の募集はこちら
にゃんこ師匠にゃんこ師匠
その他、お問い合わせはこちら
ミツオカミツオカ
   
お気軽にお問い合わせください!せっかくなので、別の記事もぜひ読んでいって下さいね!

一緒に働いてくれる仲間を募集しております!

ライトコードでは、仲間を募集しております!

当社のモットーは「好きなことを仕事にするエンジニア集団」「エンジニアによるエンジニアのための会社」。エンジニアであるあなたの「やってみたいこと」を全力で応援する会社です。

また、ライトコードは現在、急成長中!だからこそ、あなたにお任せしたいやりがいのあるお仕事は沢山あります。「コアメンバー」として活躍してくれる、あなたからのご応募をお待ちしております!

なお、ご応募の前に、「話しだけ聞いてみたい」「社内の雰囲気を知りたい」という方はこちらをご覧ください。

ライトコードでは一緒に働いていただける方を募集しております!

採用情報はこちら

関連記事