質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.46%
Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Tkinter

Tkinterは、GUIツールキットである“Tk”をPythonから利用できるようにした標準ライブラリである。

Q&A

解決済

1回答

6092閲覧

Python3 Tkinter ウィジェットのconfigureについて

person

総合スコア223

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Tkinter

Tkinterは、GUIツールキットである“Tk”をPythonから利用できるようにした標準ライブラリである。

0グッド

0クリップ

投稿2020/04/03 12:18

Tkinterのウィジェットに設定できる項目がよくわからず、
設定する際の w.configure()をprintしたら下のような表示になったのですが、これの見方がよく分かりません。

括弧や中括弧などの中身はどう違うのでしょうか。

import tkinter as tk win = tk.Tk() print(win.configure()) win.mainloop()
{'bd': ('bd', '-borderwidth'), 'borderwidth': ('borderwidth', 'borderWidth', 'BorderWidth', <pixel object: '0'>, 0), 'class': ('class', 'class', 'Class', 'Toplevel', 'Tk'), 'menu': ('menu', 'menu', 'Menu', '', ''), 'relief': ('relief', 'relief', 'Relief', <index object: 'flat'>, 'flat'), 'screen': ('screen', 'screen', 'Screen', '', ''), 'use': ('use', 'use', 'Use', '', ''), 'background': ('background', 'background', 'Background', <border object: 'systemWindowBody'>, 'systemWindowBody'), 'bg': ('bg', '-background'), 'colormap': ('colormap', 'colormap', 'Colormap', '', ''), 'container': ('container', 'container', 'Container', 0, 0), 'cursor': ('cursor', 'cursor', 'Cursor', '', ''), 'height': ('height', 'height', 'Height', <pixel object: '0'>, 0), 'highlightbackground': ('highlightbackground', 'highlightBackground', 'HighlightBackground', <color object: 'systemWindowBody'>, 'systemWindowBody'), 'highlightcolor': ('highlightcolor', 'highlightColor', 'HighlightColor', <color object: 'Black'>, 'Black'), 'highlightthickness': ('highlightthickness', 'highlightThickness', 'HighlightThickness', <pixel object: '0'>, 0), 'padx': ('padx', 'padX', 'Pad', <pixel object: '0'>, <pixel object: '0'>), 'pady': ('pady', 'padY', 'Pad', <pixel object: '0'>, <pixel object: '0'>), 'takefocus': ('takefocus', 'takeFocus', 'TakeFocus', '0', '0'), 'visual': ('visual', 'visual', 'Visual', '', ''), 'width': ('width', 'width', 'Width', <pixel object: '0'>, 0)}

先頭にあるbdの値を12345にしてみる

import tkinter as tk win = tk.Tk() win["bd"] = 12345 print(win.configure()) win.mainloop()
{'bd': ('bd', '-borderwidth'), 'borderwidth': ('borderwidth', 'borderWidth', 'BorderWidth', <pixel object: '0'>, 12345), 'class': ('class', 'class', 'Class', 'Toplevel', 'Tk'), 省略

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

オプションの設定

bg のように、いくつかのオプションはより長い名前を持つ共通のオプションに対する同義語になっています (bg は "background" を短縮したものです)。短縮形のオプション名を config() に渡すと、 5 要素ではなく 2 要素のタプルを返します。このタプルには、同義語の名前と「本当の」オプション名が入っています (例えば ('bg', 'background'))。

この辺りでしょうか。configure()で返される値には2種類あり、

'bd': ('bd', '-borderwidth'),

2要素のタプルなので同義語の名前。短縮名・別名のようなものです。

'borderwidth': ('borderwidth', 'borderWidth', 'BorderWidth', <pixel object: '0'>, 12345)

5要素のタプルで、こちらが設定の本体。

4番目がデフォルト値、
5番目が現在の設定された値 12345 になります。

(4番目が pixel object となっていますが、
最終的に tk には文字列で渡される為問題ありません。'0' になります。
自分の環境では string object: '0' でした)

他の値の内訳はドキュメントを参照してください。


pprint使うと読みやすくなります

python

1>>> from pprint import pprint 2>>> pprint(win.configure()) 3{'background': ('background', 4 'background', 5 'Background', 6 'SystemButtonFace', 7 'SystemButtonFace'), 8 'bd': ('bd', 'borderwidth'), 9 'bg': ('bg', 'background'), 10: 11:

投稿2020/04/03 12:39

teamikl

総合スコア8664

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.46%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問