Pythonyの皆さん!今回は、GUIの基本を勉強しましょう。
PythonにはGUI開発を支援し、同時にコードのシンプルさを維持するためのライブラリがたくさんあります。
そのうちの1つがTkinterです。
一番良いのは、Pythonがこの同じパッケージで動いていることです。
学習も実装も非常にシンプルです。
私たちはクールなGUIプロジェクトやアプリケーションを作ることができます。
TkinterによるGUIアプリの基本パラメータ
- TkinterのGUIアプリは以下の3つで動作します。
- ルートとなるパッケージのインスタンス – “root = Tk()”.
- アプリケーションのジオメトリ – 画面幅と画面高さ – “root.geometry(width x height)”.
- mainloop() – アプリケーションが閉じられるまで、画面上で実行し続けます。
この記事もチェック:PythonとTkinterを使って数字を単語に変換するGUIアプリを作る方法
シンプルなTkinterウィンドウを作成する
ここでは、Tkinter を使って「Hello World」というタイトルの簡単なウィンドウを作成し、手始めとします。
これで、上記のセオリーもすべてクリアされます。
コード
1
2
3
4
5
|
from tkinter import * # importing the package
root = Tk() # creating a root that acts as an instance
root.title( "Hello World" ) # setting up the title of window
root.geometry( "400x400" ) # giving the window its height and width
root.mainloop() # the mainloop
|
結果は以下の通りです。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
|
from tkinter import *
# basic setup window = Tk()
window.title( "Padding in Tkinter" )
window.geometry( "400x400" )
window.config(background = "Light Blue" )
# creating a label widget label_1 = Label(window,
text = "Label_1" ,
bg = "white" ,
fg = "black" ,
font = ( "Arial" , 30 ))
label_1.pack() # tkinter's mainloop window.mainloop() |
これは、タイトルが “Hello World “のただの空白のウィンドウです。
そこで、もっと美しくするために、ウィジェットを追加してみましょう。
Tkinterウィンドウにパディングを追加する
パディングとは、2次元のGUIルートウィンドウにウィジェットを配置することです。
これにより、必要なときにウィジェットを配置することができます。
ここで、ウィンドウがどのようにすべてのウィジェットを保持するかを考えなければなりません。
コンピュータグラフィックスでは、画面上の点を表現する最小単位はピクセルです。
もし、何もない画面に白い点が見えたら、その大きさは1ピクセルです。
携帯電話やパソコン、ノートパソコンに表示される画像は、色とりどりのピクセルの組み合わせによる調整です。
- padx ウィジェットをウィンドウのX軸に配置すること。
- pady: pady: ウィジェットをY軸に配置する.
pady パラメーターの追加
このオプションは、ラベルをウィンドウの上部のマージンから多少離れたところに配置または移動します。
パラメータを変更するだけで、残りのコードは同じままです。
コード
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
from tkinter import *
window = Tk()
window.title( "Padding in Tkinter" )
window.geometry( "400x400" )
window.config(background = "Light Blue" )
label_1 = Label(window,
text = "Label_1" ,
bg = "white" ,
fg = "black" ,
font = ( "Arial" , 30 ))
label_1.pack(padx = ( 100 , 0 ))
window.mainloop() |
結果は、以下の通りになります。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
from tkinter import *
window = Tk()
window.title( "Padding in Tkinter" )
window.geometry( "400x400" )
window.config(background = "Light Blue" )
label_1 = Label(window,
text = "Label_1" ,
bg = "white" ,
fg = "black" ,
font = ( "Arial" , 30 ))
label_1.pack(pady = 100 )
window.mainloop() |
ここで、y座標に関するパディングが起こったことがわかる。
ラベルはウィンドウ上の新しい位置にある。
より理解を深めるためのサンプルコード
TkinterのButtonでいくつかのコードを試し、paddingが機能するかどうか確認してみてください。
コード1:
from tkinter import *
window = Tk()
window.title( "Padding in Tkinter" )
window.geometry( "400x400" )
window.config(background = "Light Blue" )
button = Button(window,
text = "Click me" ,
bg = "white" ,
fg = "red" ,
border = 10 ,
font = ( "Arial" , 30 ))
button.pack(padx = 100 )
window.mainloop() |
コード2:
from tkinter import *
window = Tk()
window.title( "Padding in Tkinter" )
window.geometry( "400x400" )
window.config(background = "Light Blue" )
button = Button(window,
text = "Click me" ,
bg = "white" ,
fg = "red" ,
border = 10 ,
font = ( "Arial" , 30 ))
button.pack(pady = 40 )
window.mainloop() |
まとめ
というわけで、このようにまとめました。
TkinterはPythonの非常にシンプルかつ強力なモジュールで、Pythonの新しいバージョンとともにさらに多くの改良が加えられています。
パディングもその一つです。
あなたがGUIをプログラムする際に、これが役立つことを願っています。