1. 3 オプションの設定と取得(configure、config、cget)
メインウィンドウは「Tk」クラスからオブジェクトを作成するときに、引数でオプションの値を設定することができません。「Misc」クラスに特殊メソッド「__setitem__」と「__getitem__」が定義されているので、これにより、オブジェクトのキーワードインデックスでオプションの値を設定、取得します。また、「Misc」クラスにはオプションの値を設定、取得する「configure/config」メソッド、値を取得する「cget」メソッドが定義されています。メインウィンドウの作成後にこれらを用いてオプションを設定、取得することができます。
1.3.1 キーワードインデックス
キーワードインデックスでオプションを設定、取得するには下記の書式を用います。
次のプログラムはキーワードインデックスを用いてメインウィンドウの「幅」と「高さ」と「背景色」を設定、取得しています。「幅」は「width」キーワード、「高さ」は「height」キーワード、「背景色」は「bg」キーワードで指定します。それぞれのキーワードのより詳しい設定例については後述する項目を参照して下さい。取得した値を「print」文で出力しています。
import tkinter as tk | |
root = tk.Tk() | |
root['width'] = 300 | |
root['height'] = 200 | |
root['bg'] = 'blue' | |
print(root['width']) | |
print(root['height']) | |
print(root['bg']) | |
root.mainloop() |
このプログラムを実行すると下図のように指定したサイズと背景色のウィンドウが表示されます。
「print」出力が各キーワードに対して下記のように得られます。
200
blue
1.3.2 configure、config メソッド
「configure」、「config」 メソッドでオプションを設定、取得するには下記の書式を用います。詳細は「Misc」クラスメソッドを参照して下さい。
このメソッドを用いてオプションを設定するには、2 つの引数を用いて4 通りの方法があります。以下の4つのプログラムはメインウィンドウの「幅」と「高さ」と「背景色」を「config」メソッドで設定しています。4つのプログラムはそれぞれ「cnf」と「**kw」引数を用いて異なった指定をしていますが、動作は同じです。
import tkinter as tk | |
root = tk.Tk() | |
dcnf = {'width':300, 'height':200, 'bg':'blue'} | |
root.config(cnf=dcnf) | |
root.mainloop() |
このプログラムは引数「cnf」に辞書型の変数「dcnf」でオプションを指定しています。
import tkinter as tk | |
root = tk.Tk() | |
dcnf = {'width':300, 'height':200, 'bg':'blue'} | |
root.config(**dcnf) | |
root.mainloop() |
このプログラムは引数「**kw」に辞書型の変数「dcnf」の内容を展開してオプションを指定しています。
import tkinter as tk | |
root = tk.Tk() | |
root.config(width=300, height=200, | |
bg='blue') | |
root.mainloop() |
このプログラムは引数「**kw」にキーワードでオプションを指定しています。
import tkinter as tk | |
root = tk.Tk() | |
dcnf = {'width':300, 'height':200} | |
root.config(cnf=dcnf, bg='blue') | |
root.mainloop() |
このプログラムは引数「cnf」と「**kw」にそれぞれ辞書型の変数「dcnf」とキーワードでオプションを指定しています。
上記の4つプログラムを実行すると前項と同じウィンドウが表示されます。オプションの値を取得するには、引数「cnf」にオプションのキーワードを指定します。引数「cnf」にキーワード指定する方法とキーワードをそのまま位置引数として指定する方法があります。次のプログラムはオプションの値を取得して、値を「print」文で出力しています。
import tkinter as tk | |
root = tk.Tk() | |
root.config(width=300, height=200, | |
bg='blue') | |
print(root.config(cnf='width')) | |
print(root.config('height')) | |
root.mainloop() |
このプログラムを実行するとウィンドウが表示され、「print」出力が下記のようにタプル形式で得られます。
('height', 'height', 'Height', <string object: '0'>, 200)
1.3.3 cget メソッド
「configure」、「config」 メソッドでオプションを取得すると、そのデータは内部情報も含めてタプル形式になります。「cget」メソッドでパラメータの設定値のみを取得をすることができます。下記の書式を用います。詳細は Miscクラスメソッド を参照して下さい。
次のプログラムはメインウィンドウの「幅」と「高さ」と「背景色」の設定値を「cget」メソッドで取得しています。取得した値を「print」文で出力しています。
import tkinter as tk | |
root = tk.Tk() | |
root.config(width=300, height=200, | |
bg='blue') | |
print(root.cget('width')) | |
print(root.cget('height')) | |
print(root.cget('bg')) | |
root.mainloop() |
このプログラムを実行するとウィンドウが表示され、「print」出力が下記のように得られます。
200
blue