どのプラットフォーム(OS)でも使えるということで、身の回りのツール類をPythonに移行しようと思ってる。
とはいえ、VBSなどで作ってるツールは入力画面などGUI使ったりもしている。
手始めに、PythonでGUI系ライブラリの使い方などについて備忘がてらまとめてみる。
なお、今回は以下のサイトを参考に進める。
Tkinter による GUI プログラミング
また、私はmacOSを使用しているので、動作確認等はmacOSで実施している。
※時間があれば、WindowsやLinuxなどでも動作検証させたいという思いはある
1.PythonのGUIライブラリ
GUIライブラリといってもたくさんある。
※情報ソース:Python、GUIライブラリの紹介
どれで試そうか迷った結果、 Tkinter でやることにした。
選んだ理由としては、
- よくPythonの参考書で見かけるから
- Pythonに標準で付属されているGUIライブラリだから
ただし、見た目が良くないなどのコメントも見るので、
後々他のライブラリも触ってみようかと思っている。
とりあえず今回は、Tkinter にしました。
2. Tkinterとは
Tkinter は Tk を Python から使うためのモジュール。
※Tkは、GUIを作成するためのツールキット
Tkinterは、Pythonの標準で付属されている。
Windows、macOS、Linuxなど様々なプラットフォーム上で利用することができる。
3. Tkinterの導入方法
Tkinterは、標準にPythonに付属されているので、Pythonさえ使える環境であれば使用できる。
※今回は、Pythonの導入方法までは触れない
私の使用しているPythonのVersion。
(env001) Hoge-MBA:bin Hoge$ python --version
Python 3.6.4
モジュールが含まれていることを確認。
(env001) Hoge-MBA:bin Hoge$ python
Python 3.6.4 (default, Jan 6 2018, 11:51:59)
[GCC 4.2.1 Compatible Apple LLVM 9.0.0 (clang-900.0.39.2)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>>
>>> help('modules')
Please wait a moment while I gather a list of all available modules...
(中略)
_multibytecodec csv parser threading
_multiprocessing ctypes pathlib time
_opcode curses pdb timeit
_operator datetime pickle tkinter <=== ★含まれている
_osx_support dateutil pickletools token
_pickle dbm pip tokenize
(中略)
_warnings gzip s3transfer zlib
_weakref hashlib sched
Enter any module name to get more help. Or, type "modules spam" to search
for modules whose name or summary contain the string "spam".
>>>
>>>
念のため、ちゃんど動作するかも確認。
(env001) Hoge-MBA:bin Hoge$ python
Python 3.6.4 (default, Jan 6 2018, 11:51:59)
[GCC 4.2.1 Compatible Apple LLVM 9.0.0 (clang-900.0.39.2)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>>
>>> import tkinter
>>> tkinter._test()
>>>
実行すると以下が表示された。