tkinter.ttk.Sizegrip【サイズグリップ ウィジェット】
メモ ( 作成 例 リサイズの範囲 例 配置方法 例 ) オプション メソッド 例
メモ
- サイズグリップ ウィジェットの作成〔 例 〕
- tkinter.ttk.Sizegrip:テーマ付きウィジェット
- リサイズの範囲〔 例 〕
- 機能的には、トップレベルウィンドウをドラッグしてリサイズ可能な領域を明示するのみ
リサイズ範囲を設定するには、下記メソッドで指定 - minsize( )【最小サイズの取得・設定】
- maxsize( )【最大サイズの取得・設定】
- resizable【幅・高さの変更可否 取得・設定】
- 機能的には、トップレベルウィンドウをドラッグしてリサイズ可能な領域を明示するのみ
- 配置方法〔 例 〕 自動配置されないので、下記で右下に配置
配置形式 配置方法 pack【配置 (パック形式)】 右端または左端の領域に Sizegrip を配置
・pack( ) で下記指定
side【詰め込み位置】:BOTTOM【下端】 または RIGHT【右端】
anchor【配置位置】:SE【右下】grid【配置 (グリッド形式)】 Sizegrip を配置するセルを右下に固定
・リサイズしても余白がない様に指定
下記で weight【余剰領域割り当ての相対的重み】を1つ以上指定
grid_columnconfigure【列プロパティ 設定・取得】
grid_rowconfigure【行プロパティ 設定・取得】
・Sizegrip の配置
右下のセルが空いていれば、そこに配置
空がなければ 行・列 または 両方 を追加し、右下になるセルに配置
grid( ) の sticky【位置】は、 SE【右下】を指定
外部リンク
オプション
メモ
- オプションの設定方法
- コンストラクタで辞書型引数 (tk のみ)・キーワード引数として指定
- オプション名を辞書インデックスとして指定 ( widget ['オプション名'] )
- config・configure【オプション設定・取得】で辞書型引数・キーワード引数として指定
- オプション関連のメソッド
- オプション関連メソッド
- Style.configure( ):Style に設定した値
- 注) 実装依存 (各種ドキュメントに相違があり)
オプション 一覧
個別 | tk | ttk | 説明 |
---|---|---|---|
background | Style | 背景色 | |
(stateflags) | state( ) 〔詳細〕 | 状態フラグ (組合せ) ・(なし):通常状態 ・'disabled':無効状態 | |
共通 | tk | ttk | 説明 |
class_ | ○ | クラス名 | |
cursor | Config | マウスカーソル名 | |
name | ○ | インスタンス名 (省略:自動命名) 先頭は小文字・ドットは不可 / フルパスで一意 〔 インスタンス識別 〕 | |
style | Config | スタイル名 (TSizegrip) | |
takefocus | Config | [Tab]キー等でのフォーカス移動の有無〔フォーカス〕 ・'' (空文字列):自動設定 ・False:なし (スキップ) ・True:あり (タブストップ) |
凡例
●:各種方法で指定可能
○:コンストラクタでのみ指定可能
▲:config( ) 等でのみ指定可能
Config:コンストラクタ 及び config( ) 等で指定可能
Style:Style でのみ指定可能
Method:メソッドの引数で指定
Default:デフォルト値
:テーマ依存
○:コンストラクタでのみ指定可能
▲:config( ) 等でのみ指定可能
Config:コンストラクタ 及び config( ) 等で指定可能
Style:Style でのみ指定可能
Method:メソッドの引数で指定
Default:デフォルト値
:テーマ依存
色 | 説明 |
---|---|
'色名' | 色名:'red'・'green'・'blue'・'gray0'~'gray100'・'system~' 等 下記参照 Tcl8.6/Tk8.6 - Tk Commands - colors (同名色でも HTML5:カラー定義 と定義に差異あり) |
'#RGB' | 16進 4ビット |
'#RRGGBB' | 16進 8ビット |
'#RRRGGGBBB' | 16進 12ビット |
'#RRRRGGGGBBBB' | 16進 16ビット |
マウスカーソル名の詳細 ( cursor )
マウスカーソル名 | 説明 |
---|---|
'マウスカーソル名' | 下記参照 ('arrow'・'wait' 等) Tcl8.6/Tk8.6 - Tk Commands - cursors (英語) Tkinter 8.5 reference: a GUI for Python - Cursors (英語) |
メソッド
コンストラクタ | 備考 |
---|---|
ttk.Sizegrip(master=None, **kw) | コンストラクタ master親 (tkinter.Tk【トップレベルウィンドウ】・コンテナウィジェット) kw (キーワード引数)オプション (複数可) |
固有メソッド | 備考 |
なし | |
共通メソッド (抜粋) 〔詳細はリンク先〕 | 備考 |
cget( 'option' ) widget['option'] | オプション値 取得 下の構文はオプション値の設定も可 |
config( ~ ) configure( ~ ) | オプション 設定・取得 |
pack( ~ ) | 配置 (パック形式) |
grid( ~ ) | 配置 (グリッド形式) |
place( ~ ) | 配置 (座標形式) |
state( ~ ) ttk | 状態フラグ 取得・設定 |
instate( ~ ) ttk | 状態フラグ チェック |
例
作成
リサイズの範囲
import tkinter as tk
import tkinter.ttk as ttk
# トップレベルウィンドウ作成
root = tk.Tk()
root.config(background="blue")
root.minsize(200, 100)
root.maxsize(400, 200)
# ttk.Sizegrip
style = ttk.Style()
style.configure(
"example.TSizegrip",
background="blue",
)
sizegrip = ttk.Sizegrip(
root,
style="example.TSizegrip",
)
sizegrip.pack(side=tk.BOTTOM, anchor=tk.SE)
# メインループ
root.mainloop()
配置方法
import tkinter as tk
import tkinter.ttk as ttk
# トップレベルウィンドウ作成
root = tk.Tk()
# Label (A)
label_a = tk.Label(
root,
text="(A)\npack(side=tk.TOP)",
relief=tk.RAISED,
)
label_a.pack(side=tk.TOP, fill=tk.X)
# Label (B)
label_b = tk.Label(
root,
text="(B)\npack(side=tk.TOP)",
relief=tk.RAISED,
)
label_b.pack(side=tk.TOP, fill=tk.X)
# ttk.Sizegrip
sizegrip = ttk.Sizegrip(root)
sizegrip.pack(side=tk.BOTTOM, anchor=tk.SE)
# メインループ
root.mainloop()
import tkinter as tk
import tkinter.ttk as ttk
# トップレベルウィンドウ作成
root = tk.Tk()
# Label (A)
label_a = tk.Label(
root,
text="(A)\npack(side=tk.LEFT)",
relief=tk.RAISED,
)
label_a.pack(side=tk.LEFT, fill=tk.Y)
# Label (B)
label_b = tk.Label(
root,
text="(B)\npack(side=tk.LEFT)",
relief=tk.RAISED,
)
label_b.pack(side=tk.LEFT, fill=tk.Y)
# ttk.Sizegrip
sizegrip = ttk.Sizegrip(root)
sizegrip.pack(side=tk.RIGHT, anchor=tk.SE)
# メインループ
root.mainloop()
import tkinter as tk
import tkinter.ttk as ttk
# トップレベルウィンドウ作成
root = tk.Tk()
root.grid_columnconfigure(0, weight=1)
root.grid_rowconfigure(0, weight=1)
# Label (0, 0)
label_00 = tk.Label(
root,
text="grid\n(row=0, column=0)",
relief=tk.RAISED,
)
label_00.grid(row=0, column=0, sticky=tk.NSEW)
# Label (0, 1)
label_01 = tk.Label(
root,
text="grid\n(row=0, column=1)",
relief=tk.RAISED,
)
label_01.grid(row=0, column=1, sticky=tk.NSEW)
# Label (1, 0)
label_10 = tk.Label(
root,
text="grid\n(row=1, column=0)",
relief=tk.RAISED,
)
label_10.grid(row=1, column=0, sticky=tk.NSEW)
# ttk.Sizegrip
sizegrip = ttk.Sizegrip(root)
sizegrip.grid(row=1, column=1, sticky=tk.SE)
# メインループ
root.mainloop()
import tkinter as tk
import tkinter.ttk as ttk
# トップレベルウィンドウ作成
root = tk.Tk()
root.grid_columnconfigure(0, weight=1)
root.grid_rowconfigure(1, weight=1)
# Label (0, 0)
label_00 = tk.Label(
root,
text="grid\n(row=0, column=0)",
relief=tk.RAISED,
)
label_00.grid(row=0, column=0, sticky=tk.NSEW)
# Label (0, 1)
label_01 = tk.Label(
root,
text="grid\n(row=0, column=1)",
relief=tk.RAISED,
)
label_01.grid(row=0, column=1, sticky=tk.NSEW)
# Label (1, 0)
label_10 = tk.Label(
root,
text="grid\n(row=1, column=0)",
relief=tk.RAISED,
)
label_10.grid(row=1, column=0, sticky=tk.NSEW)
# Label (1, 1)
label_11 = tk.Label(
root,
text="grid\n(row=1, column=1)",
relief=tk.RAISED,
)
label_11.grid(row=1, column=1, sticky=tk.NSEW)
# ttk.Sizegrip
sizegrip = ttk.Sizegrip(root)
sizegrip.grid(row=2, column=1, sticky=tk.SE)
# メインループ
root.mainloop()
import tkinter as tk
import tkinter.ttk as ttk
# トップレベルウィンドウ作成
root = tk.Tk()
root.grid_columnconfigure(1, weight=1)
root.grid_rowconfigure(0, weight=1)
# Label (0, 0)
label_00 = tk.Label(
root,
text="grid\n(row=0, column=0)",
relief=tk.RAISED,
)
label_00.grid(row=0, column=0, sticky=tk.NSEW)
# Label (0, 1)
label_01 = tk.Label(
root,
text="grid\n(row=0, column=1)",
relief=tk.RAISED,
)
label_01.grid(row=0, column=1, sticky=tk.NSEW)
# Label (1, 0)
label_10 = tk.Label(
root,
text="grid\n(row=1, column=0)",
relief=tk.RAISED,
)
label_10.grid(row=1, column=0, sticky=tk.NSEW)
# Label (1, 1)
label_11 = tk.Label(
root,
text="grid\n(row=1, column=1)",
relief=tk.RAISED,
)
label_11.grid(row=1, column=1, sticky=tk.NSEW)
# ttk.Sizegrip
sizegrip = ttk.Sizegrip(root)
sizegrip.grid(row=1, column=2, sticky=tk.SE)
# メインループ
root.mainloop()
import tkinter as tk
import tkinter.ttk as ttk
# トップレベルウィンドウ作成
root = tk.Tk()
root.grid_columnconfigure(1, weight=1)
root.grid_rowconfigure(1, weight=1)
# Label (0, 0)
label_00 = tk.Label(
root,
text="grid\n(row=0, column=0)",
relief=tk.RAISED,
)
label_00.grid(row=0, column=0, sticky=tk.NSEW)
# Label (0, 1)
label_01 = tk.Label(
root,
text="grid\n(row=0, column=1)",
relief=tk.RAISED,
)
label_01.grid(row=0, column=1, sticky=tk.NSEW)
# Label (1, 0)
label_10 = tk.Label(
root,
text="grid\n(row=1, column=0)",
relief=tk.RAISED,
)
label_10.grid(row=1, column=0, sticky=tk.NSEW)
# Label (1, 1)
label_11 = tk.Label(
root,
text="grid\n(row=1, column=1)",
relief=tk.RAISED,
)
label_11.grid(row=1, column=1, sticky=tk.NSEW)
# ttk.Sizegrip
sizegrip = ttk.Sizegrip(root)
sizegrip.grid(row=2, column=2, sticky=tk.SE)
# メインループ
root.mainloop()