どん底から這い上がるまでの記録

どん底から這い上がりたいけど這い上がれない人がいろいろ書くブログ(主にプログラミング)

Hello World

スポンサーリンク


Window

tkinterのHelloWorldのプログラムを書きます。tkinterを使ってアプリケーション作るときはじめにトップレベルのウィンドウ(メインウィンドウ)を生成する必要があります。以下のように3行書くだけでメインウィンドウの作成をし、アプリケーションの実行をすることができます。

import tkinter as tk
root = tk.Tk()
root.mainloop()

このプログラムを実行すると、下のようなウィンドウが出てきます。

f:id:pytry3g:20180204185554p:plain

 

このプログラムでは1行目でtkinterをtkとしてインポート。2行目でTkのオブジェクトを作成する。このオブジェクトがメインウィンドウになる。3行目でイベントループを開始する。イベントループが開始するとメインウィンドウが立ち上がり、ユーザからの処理(イベント)待ちの状態になる。

 

tkinterを使ったGUIアプリケーションの作成は以下のようなステップになります。

※上の例ではWidgetは配置していません。

  1. tkinterをインポート
  2. メインウィンドウの作成
  3. Widget(ボタンやラベルなどの部品)をメインウィンドウに配置する。
  4. イベントループを開始する。

今回は3の手順を除いたHelloWorldプログラムを書いて実際にメインウィンドウを作ってみます。それが下のプログラムになります。上のプログラムにいくつかのメソッドを使うことにより、メインウィンドウのタイトル、サイズ、位置、アイコンの設定をしています。(※画像は各自用意してください。)

 

import tkinter as tk


class App:
    def __init__(self):
        self._window = tk.Tk()
        self._window.title("Hello World")
        self._window.resizable(width=False, height=False)
        self._window.geometry("{}x{}+{}+{}".format(300, 300, 300, 100))
        self._window.iconbitmap('python.ico')

    def run(self):
        self._window.mainloop()

if __name__ == "__main__":
    app = App()
    app.run()

 このプログラムを実行すると、下のようなウィンドウが出てきます。

f:id:pytry3g:20180204193149p:plain

プログラムで使ったメソッド一覧

.title(text)

タイトルの設定をする

.resizable(width, height)

ウィンドウの縦横の拡大縮小の設定をする。Trueを渡せば拡大縮小でき、Falseだとできなくなる。

デフォルトではwidth, heightともに1が入っている。つまり拡大縮小が可能な状態。

.geometry(width x height ± x ± y)

ウィンドウのサイズ(width, height)と位置(x, y)を設定する。

.iconbitmap(bitmap)

イコン画像の設定。png画像だとエラーがでたのでアイコンファイルに変換した。

.mainloop()

イベントループが開始され、ユーザからのイベント待ち(ボタンのクリックやテキストの入力など)の状態になる。widgetが配置された後に使う。

おまけ

import tkinter as tk
app = tk.Tk()

.maxsize(width, height)

ウィンドウが拡大できる最大のサイズの設定。widthだけ設定するとエラーが出ます。heightだけ設定すると適用されません。widthとheightを設定する必要があります。 

app.maxsize(width=100, height=100)

.minsize(width, height)

ウィンドウが縮小できる最小のサイズの設定。widthだけ設定するとエラーが出ます。heightだけ設定すると適用されません。widthとheightを設定する必要があります。

app.minsize(100, 100)

.configure(option)

widgetのオプションを設定できる。オプションはwidgetの生成のときに設定できるが、トップレベルのウィンドウの生成のときは設定できないみたい。なので、オプションを設定したいときはウィンドウを生成した後に設定する。下の例ではウィンドウの背景の色とサイズの設定をしている。おそらくトップレベルのウィンドウで設定できるオプションは背景の色とサイズだけのよう。tkinterで使える色の一覧(Tk Built-In Commands - colors manual page

app.configure(bg="red", width=600, height=100)

.cget(option_name)

オプションの情報を参照できる。option_nameは文字列で指定する必要がある。

app.cget("bg")

 

To be continued...