回答編集履歴
3
スクリーンショットを掲載
test
CHANGED
@@ -152,6 +152,8 @@
|
|
152
152
|
|
153
153
|
root.mainloop()
|
154
154
|
|
155
|
+
```
|
155
156
|
|
156
157
|
|
158
|
+
|
157
|
-
|
159
|
+
![イメージ説明](95c85e27fce220e13cd5e79dcff3933d.png)
|
2
サンプルコードを追加
test
CHANGED
@@ -41,3 +41,117 @@
|
|
41
41
|
''')
|
42
42
|
|
43
43
|
```
|
44
|
+
|
45
|
+
|
46
|
+
|
47
|
+
----
|
48
|
+
|
49
|
+
|
50
|
+
|
51
|
+
```python
|
52
|
+
|
53
|
+
#!/usr/bin/env python
|
54
|
+
|
55
|
+
|
56
|
+
|
57
|
+
import tkinter as tk
|
58
|
+
|
59
|
+
from tkinter import ttk
|
60
|
+
|
61
|
+
|
62
|
+
|
63
|
+
root = tk.Tk()
|
64
|
+
|
65
|
+
style = ttk.Style()
|
66
|
+
|
67
|
+
|
68
|
+
|
69
|
+
# 注意点: theme によって有効・無効になるスタイルがあります。
|
70
|
+
|
71
|
+
# 例えば、このコードの場合は、theem_use("default") にすると
|
72
|
+
|
73
|
+
# ttk.Frame 枠線の色が変わります。
|
74
|
+
|
75
|
+
style.theme_use("clam")
|
76
|
+
|
77
|
+
|
78
|
+
|
79
|
+
# 不具合対応パッチ
|
80
|
+
|
81
|
+
root.tk.eval("""
|
82
|
+
|
83
|
+
ttk::style map Treeview \
|
84
|
+
|
85
|
+
-foreground {disabled SystemGrayText \
|
86
|
+
|
87
|
+
selected SystemHighlightText} \
|
88
|
+
|
89
|
+
-background {disabled SystemButtonFace \
|
90
|
+
|
91
|
+
selected SystemHighlight}
|
92
|
+
|
93
|
+
""")
|
94
|
+
|
95
|
+
|
96
|
+
|
97
|
+
style.configure("Treeview",
|
98
|
+
|
99
|
+
background="#eeeeff",
|
100
|
+
|
101
|
+
fieldbackground="#eeeeff",
|
102
|
+
|
103
|
+
# NOTE: Treeview にも border オプションはありますが、
|
104
|
+
|
105
|
+
# theme によって挙動が異なる為、目的の用途にはほぼ使えません。
|
106
|
+
|
107
|
+
borderwidth=0,
|
108
|
+
|
109
|
+
)
|
110
|
+
|
111
|
+
style.configure("Treeview.Heading",
|
112
|
+
|
113
|
+
background="#aaaaff",
|
114
|
+
|
115
|
+
borderwidth=0,
|
116
|
+
|
117
|
+
)
|
118
|
+
|
119
|
+
style.configure("Tree.TFrame",
|
120
|
+
|
121
|
+
# ttk.Frame の場合、widget のオプションと,
|
122
|
+
|
123
|
+
# style のオプション両方で指定します。
|
124
|
+
|
125
|
+
# ここも theme 次第では挙動が変わります。
|
126
|
+
|
127
|
+
background="#aaaaff")
|
128
|
+
|
129
|
+
|
130
|
+
|
131
|
+
## 外枠線の為に Frame を生成。
|
132
|
+
|
133
|
+
#frame = tk.Frame(root, bd=4, bg="#aaaaff")
|
134
|
+
|
135
|
+
frame = ttk.Frame(root, style="Tree.TFrame",
|
136
|
+
|
137
|
+
borderwidth=4, relief='solid')
|
138
|
+
|
139
|
+
frame.pack()
|
140
|
+
|
141
|
+
|
142
|
+
|
143
|
+
tree = ttk.Treeview(frame) # NOTE: 外枠の為に、親クラスにFrameを設定。
|
144
|
+
|
145
|
+
tree.pack()
|
146
|
+
|
147
|
+
tree.tag_configure("item", background="#eeeeff")
|
148
|
+
|
149
|
+
parent = tree.insert("", tk.END, text="parent", tags="item")
|
150
|
+
|
151
|
+
child = tree.insert(parent, tk.END, text="child", tags="item")
|
152
|
+
|
153
|
+
root.mainloop()
|
154
|
+
|
155
|
+
|
156
|
+
|
157
|
+
```
|
1
修正: 紛らわしいかもしれないので不要な情報を削除
test
CHANGED
@@ -41,75 +41,3 @@
|
|
41
41
|
''')
|
42
42
|
|
43
43
|
```
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
----
|
48
|
-
|
49
|
-
```python
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
def fixture_treeview_tag_config(style):
|
54
|
-
|
55
|
-
# NOTE: https://bugs.python.org/issue36468
|
56
|
-
|
57
|
-
def fixed_map(option):
|
58
|
-
|
59
|
-
# Fix for setting text colour for Tkinter 8.6.9
|
60
|
-
|
61
|
-
# From: https://core.tcl.tk/tk/info/509cafafae
|
62
|
-
|
63
|
-
#
|
64
|
-
|
65
|
-
# Returns the style map for 'option' with any styles starting with
|
66
|
-
|
67
|
-
# ('!disabled', '!selected', ...) filtered out.
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
# style.map() returns an empty list for missing options, so this
|
72
|
-
|
73
|
-
# should be future-safe.
|
74
|
-
|
75
|
-
return [elm for elm in style.map('Treeview', query_opt=option) if
|
76
|
-
|
77
|
-
elm[:2] != ('!disabled', '!selected')]
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
style.map('Treeview',
|
82
|
-
|
83
|
-
foreground=fixed_map('foreground'),
|
84
|
-
|
85
|
-
background=fixed_map('background'))
|
86
|
-
|
87
|
-
|
88
|
-
|
89
|
-
# Remove dot focus on "#0" column
|
90
|
-
|
91
|
-
style.layout('Treeview.Item',
|
92
|
-
|
93
|
-
[('Treeitem.padding',
|
94
|
-
|
95
|
-
{'children': [('Treeitem.indicator', {'side': 'left', 'sticky': ''}),
|
96
|
-
|
97
|
-
('Treeitem.image', {'side': 'left', 'sticky': ''}),
|
98
|
-
|
99
|
-
('Treeitem.text', {'side': 'left', 'sticky': ''})],
|
100
|
-
|
101
|
-
'sticky': 'nswe'})])
|
102
|
-
|
103
|
-
|
104
|
-
|
105
|
-
|
106
|
-
|
107
|
-
# main側で呼び出し
|
108
|
-
|
109
|
-
|
110
|
-
|
111
|
-
fixture_treevbiew_tag_config(ttk.Style())
|
112
|
-
|
113
|
-
|
114
|
-
|
115
|
-
```
|