Python初心者がtkinterを使ってみます。(Windows10上)
参考したURL:
![](https://qiita-user-contents.imgix.net/https%3A%2F%2Fcdn.qiita.com%2Fassets%2Fpublic%2Farticle-ogp-background-412672c5f0600ab9a64263b751f1bc81.png?ixlib=rb-4.0.0&w=1200&mark64=aHR0cHM6Ly9xaWl0YS11c2VyLWNvbnRlbnRzLmltZ2l4Lm5ldC9-dGV4dD9peGxpYj1yYi00LjAuMCZ3PTk3MiZoPTM3OCZ0eHQ9UHl0aG9uJUUzJTgxJUFFVGtpbnRlciVFMyU4MiU5MiVFNCVCRCVCRiVFMyU4MSVBMyVFMyU4MSVBNiVFMyU4MSVCRiVFMyU4MiU4QiZ0eHQtYWxpZ249bGVmdCUyQ3RvcCZ0eHQtY29sb3I9JTIzMjEyMTIxJnR4dC1mb250PUhpcmFnaW5vJTIwU2FucyUyMFc2JnR4dC1zaXplPTU2JnM9YWMxN2VmNzFmNDM0OWE0MmM4OWFmYmRkYTUxMzc2M2M&mark-x=142&mark-y=57&blend64=aHR0cHM6Ly9xaWl0YS11c2VyLWNvbnRlbnRzLmltZ2l4Lm5ldC9-dGV4dD9peGxpYj1yYi00LjAuMCZoPTc2Jnc9NzcwJnR4dD0lNDBubmFoaXRvJnR4dC1jb2xvcj0lMjMyMTIxMjEmdHh0LWZvbnQ9SGlyYWdpbm8lMjBTYW5zJTIwVzYmdHh0LXNpemU9MzYmdHh0LWFsaWduPWxlZnQlMkN0b3Amcz0zNDU2YmI3OTZmMjg4OThhN2UxNDZjOTM4NDVlMzBiYQ&blend-x=142&blend-y=436&blend-mode=normal&txt64=aW4gTmltIGluIEphcGFu&txt-width=770&txt-clip=end%2Cellipsis&txt-color=%23212121&txt-font=Hiragino%20Sans%20W6&txt-size=36&txt-x=156&txt-y=536&s=9c8c6a3aa8206f8ffa9cefeb776c740c)
■tkinter(ティーキンター, ティーケーインター)とは?
GUI、Graphical User Interface(グラフィカル・ユーザ・インターフェース)を組み込むことのできるツールキットのことで、ユーザ・インターフェースは、コンピュータと利用者(人間)の間での情報をやりとりするためのもの。
■tkinterのインストールは?
tkinterは、Pythonに含まれているので、インストールは必要ない。
■Python
今回のPythonのバージョンは、「3.8.2」を使用しています。
■ウインドウを表示させてみる
まずはテストで、文字も何も表示されないウインドウを表示させてみます。
■コード
import sys import tkinter root = tkinter.Tk() root.mainloop()
上記のコードを、「tkinter-test.py」というファイルで保存します。
■実行
「tkinter-test.py」というファイルをコマンドプロンプトから実行してみます。
実行してみると、文字も何も表示されないウインドウが開きました。
補足として、
ModuleNotFoundErrorというエラーが表示されます。コードを記述する場合は、「tkinter」と全て小文字で記述する必要があります。
■1行文字列の入力させるウインドウを作ってみる
■コード
import sys import tkinter root = tkinter.Tk() #ウインドウのタイトルバー root.title(u"テストのタイトルバー") #ウインドウサイズ root.geometry("400x300") #エントリー(1行文字列の入力) EditBox = tkinter.Entry() EditBox.pack() root.mainloop()
1行文字列の入力させる場合は、tkinterのウィジェットの「Entry」を使用します。また今回は、root.titleでウインドウのタイトルバーの指定と、root.geometryでウインドウサイズを指定(400×300は、400px * 300pxのサイズのウインドが表示)も行ってみます。
上記のコードを、「tkinter-test.py」というファイルで保存します。
■実行
「tkinter-test.py」というファイルをコマンドプロンプトから実行してみます。
実行してみると、ウインドウが表示され、指定したウインドウのタイトルバー、指定したウインドウサイズ、1行文字列の入力ウィジェットが表示されました。
■ウインドウにボタンを表示させてみる
次に、ウインドウにボタンを表示させてみます。
■コード
import tkinter root = tkinter.Tk() #ウインドウサイズ root.geometry("400x300") #ボタン button = tkinter.Button(root, text="ボタン") button.pack() root.mainloop()
先程と同じで、400px * 300pxのサイズのウインド内に「ボタン」という表記のあるボタンを設置してみます。
上記のコードを、「tkinter-test.py」というファイルで保存します。
■実行
「tkinter-test.py」というファイルをコマンドプロンプトから実行してみます。
実行してみると、400px * 300pxのサイズのウインド内に「ボタン」が表示されていることが確認できました。
■ラベル付きのハイパーリンクを作成してみる
次に、ラベル付きのハイパーリンクを作成してみます。
■コード
参考にしたURL:https://ja.coder.work/so/python/306549
from tkinter import * import webbrowser def callback(url): webbrowser.open_new(url) root = Tk() link1 = Label(root, text="Google", cursor="hand2") link1.pack() link1.bind("<Button-1>", lambda e: callback("http://www.google.com")) root.mainloop()
ハイパーリンクをクリックして、Webブラウザを開きますので、webbrowserモジュール(import webbrowser)を使います。Labelをクリックすると、callbackが実行され、デフォルトのブラウザで新しいページが開くような仕組みです。今回はGoogle(http://www.google.com)のページが開くように設定しています。
なお、Googleの文字が表示されているラベルをクリックしようとすると、「cursor=”hand2″」を指定していますので、カーソルの種類が変更されます。tkinterでは様々なカーソルが用意されています。参考:https://www.tcl.tk/man/tcl/TkCmd/cursors.htm
上記のコードを、「tkinter-link.py」というファイルで保存します。
■実行
「tkinter-link.py」というファイルをコマンドプロンプトから実行してみます。
実行してみると、ウインドウが表示され、その中にGoogleの文字がありますので、こちらをクリックします。
クリックすると、Webブラウザが起動し、Googleへアクセスされました。
コメント