tkfluent 0.0.3__py3-none-any.whl → 0.0.5__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
tkflu/__init__.py CHANGED
@@ -9,19 +9,23 @@ Fluent设计的tkinter组件库(模板)
9
9
 
10
10
  from .badge import FluBadge
11
11
  from .button import FluButton
12
+ from .constants import *
13
+ from .defs import *
12
14
  from .entry import FluEntry
13
15
  from .frame import FluFrame
14
16
  from .label import FluLabel
15
17
  from .menu import FluMenu
16
18
  from .menubar import FluMenuBar
17
- from .popupmenu import FluPopupMenu
19
+ from .popupmenu import FluPopupMenu, FluPopupMenuWindow
20
+ from .popupwindow import FluPopupWindow
18
21
  from .text import FluText
19
22
  from .thememanager import FluThemeManager
20
23
  from .togglebutton import FluToggleButton
24
+ from .tooltip import FluToolTip
21
25
  from .toplevel import FluToplevel
22
26
  from .window import FluWindow
23
- #from .winico import FluWinico
24
27
 
28
+ from .designs import *
25
29
 
26
30
  FluChip = FluBadge
27
31
  FluPushButton = FluButton
tkflu/__main__.py CHANGED
@@ -2,6 +2,8 @@ from tkflu import *
2
2
  from tkinter import *
3
3
  from tkinter.font import *
4
4
 
5
+ orange_primary_color()
6
+
5
7
  root = FluWindow()
6
8
  #root.wincustom(way=0)
7
9
  root.wm_geometry("360x500")
@@ -27,14 +29,20 @@ menu2 = FluMenu(height=93)
27
29
  menu2.add_command(
28
30
  label="FluMenu3-1", width=80, command=lambda: print("FluMenu3-1 -> Clicked")
29
31
  )
30
- menu2.add_command(
31
- label="FluMenu3-2", width=80, command=lambda: print("FluMenu3-2 -> Clicked")
32
+
33
+ menu3 = FluMenu(height=46, width=10)
34
+ menu3.add_command(
35
+ label="FluMenu3-2-1", width=80, command=lambda: print("FluMenu3-2-1 -> Clicked")
36
+ )
37
+
38
+ menu2.add_cascade(
39
+ label="FluMenu3-2", width=80, menu=menu3
32
40
  )
33
41
  menubar.add_cascade(
34
42
  label="FluMenu3", width=80, menu=menu2
35
43
  )
36
44
 
37
- menubar.pack(fill="x",)
45
+ menubar.pack(fill="x")
38
46
 
39
47
  frame = FluFrame(root)
40
48
 
@@ -54,21 +62,22 @@ button2 = FluButton(
54
62
  )
55
63
  button2.pack(fill="x", padx=5, pady=5)
56
64
 
57
- def toggle1():
58
- print(f"FluToggleButton -> Toggled -> Checked: {togglebutton1.dcget('checked')}")
59
- if togglebutton1.dcget('checked'):
60
- thememanager.mode("dark")
61
- else:
62
- thememanager.mode("light")
63
-
64
65
  togglebutton1 = FluToggleButton(
65
- frame, text="FluToggleButton", command=toggle1
66
+ frame, text="FluToggleButton", command=lambda: print(f"FluToggleButton -> Toggled -> Checked: {togglebutton1.dcget('checked')}")
66
67
  )
67
68
  togglebutton1.pack(fill="x", padx=5, pady=5)
68
69
 
70
+ togglebutton2 = FluToggleButton(
71
+ frame, text="Toggle Theme", command=lambda: toggle_theme(togglebutton2, thememanager)
72
+ )
73
+ togglebutton2.pack(fill="x", padx=5, pady=5)
74
+
69
75
  entry1 = FluEntry(frame)
70
76
  entry1.pack(fill="x", padx=5, pady=5)
71
77
 
78
+ entry2 = FluEntry(frame, height=50)
79
+ entry2.pack(fill="x", padx=5, pady=5)
80
+
72
81
  text1 = FluText(frame)
73
82
  text1.pack(fill="x", padx=5, pady=5)
74
83
 
tkflu/badge.py CHANGED
@@ -2,18 +2,30 @@ from tkdeft.windows.draw import DSvgDraw
2
2
  from tkdeft.windows.canvas import DCanvas
3
3
  from tkdeft.windows.drawwidget import DDrawWidget
4
4
 
5
+ from .designs.badge import badge
6
+
5
7
 
6
8
  class FluBadgeDraw(DSvgDraw):
7
9
  def create_roundrect(self,
8
10
  x1, y1, x2, y2, temppath=None,
9
- fill="transparent", outline="black", width=1
11
+ fill="transparent", fill_opacity=1,
12
+ outline="black", outline_opacity=1, width=1
10
13
  ):
11
14
  drawing = self.create_drawing(x2 - x1, y2 - y1, temppath=temppath)
12
15
  drawing[1].add(
13
16
  drawing[1].rect(
14
17
  (x1, y1), (x2 - x1, y2 - y1), 20, 25,
15
- fill=fill, stroke_width=width,
16
- stroke=outline,
18
+ id=".Badge", transform="translate(0.500000 0.500000)",
19
+ fill=fill, fill_opacity=fill_opacity,
20
+ stroke=outline, stroke_opacity=outline_opacity, stroke_width=width,
21
+ )
22
+ )
23
+ drawing[1].add(
24
+ drawing[1].rect(
25
+ (x1, y1), (x2 - x1, y2 - y1), 20, 25,
26
+ id=".Badge", transform="translate(0.500000 0.500000)",
27
+ fill="white", fill_opacity=0,
28
+ stroke=outline, stroke_opacity=outline_opacity, stroke_width=width,
17
29
  )
18
30
  )
19
31
  drawing[1].save()
@@ -25,11 +37,13 @@ class FluBadgeCanvas(DCanvas):
25
37
 
26
38
  def create_round_rectangle(self,
27
39
  x1, y1, x2, y2, temppath=None,
28
- fill="transparent", outline="black", width=1
40
+ fill="transparent", fill_opacity=1,
41
+ outline="black", outline_opacity=1, width=1
29
42
  ):
30
43
  self._img = self.svgdraw.create_roundrect(
31
44
  x1, y1, x2, y2, temppath=temppath,
32
- fill=fill, outline=outline, width=width
45
+ fill=fill, fill_opacity=fill_opacity,
46
+ outline=outline, outline_opacity=outline_opacity, width=width
33
47
  )
34
48
  self._tkimg = self.svgdraw.create_tksvg_image(self._img)
35
49
  return self.create_image(x1, y1, anchor="nw", image=self._tkimg)
@@ -72,9 +86,8 @@ class FluBadge(FluBadgeCanvas, DDrawWidget):
72
86
 
73
87
  self.bind("<<Clicked>>", lambda event=None: self.focus_set(), add="+")
74
88
 
75
- if font is None:
76
- from tkdeft.utility.fonts import SegoeFont
77
- self.attributes.font = SegoeFont()
89
+ from .defs import set_default_font
90
+ set_default_font(font, self.attributes)
78
91
 
79
92
  def _init(self, mode, style):
80
93
  from easydict import EasyDict
@@ -86,7 +99,9 @@ class FluBadge(FluBadgeCanvas, DDrawWidget):
86
99
  "font": None,
87
100
 
88
101
  "back_color": None,
102
+ "back_opacity": None,
89
103
  "border_color": None,
104
+ "border_color_opacity": None,
90
105
  "border_width": None,
91
106
  "text_color": None
92
107
  }
@@ -107,13 +122,16 @@ class FluBadge(FluBadgeCanvas, DDrawWidget):
107
122
  self.delete("all")
108
123
 
109
124
  _back_color = self.attributes.back_color
125
+ _back_opacity = self.attributes.back_opacity
110
126
  _border_color = self.attributes.border_color
127
+ _border_color_opacity = self.attributes.border_color_opacity
111
128
  _border_width = self.attributes.border_width
112
129
  _text_color = self.attributes.text_color
113
130
 
114
131
  self.element_border = self.create_round_rectangle(
115
132
  0, 0, self.winfo_width(), self.winfo_height(), temppath=self.temppath,
116
- fill=_back_color, outline=_border_color, width=_border_width
133
+ fill=_back_color, fill_opacity=_back_opacity,
134
+ outline=_border_color, outline_opacity=_border_color_opacity, width=_border_width
117
135
  )
118
136
 
119
137
  self.element_text = self.create_text(
@@ -137,34 +155,25 @@ class FluBadge(FluBadgeCanvas, DDrawWidget):
137
155
  else:
138
156
  self._light()
139
157
 
140
- def _light(self):
158
+ def _theme(self, mode, style):
159
+ n = badge(mode, style)
141
160
  self.dconfigure(
142
- back_color="#f9f9f9",
143
- border_color="#f0f0f0",
144
- border_width=1,
145
- text_color="#191919",
161
+ back_color=n["back_color"],
162
+ back_opacity=n["back_opacity"],
163
+ border_color=n["border_color"],
164
+ border_color_opacity=n["border_color_opacity"],
165
+ border_width=n["border_width"],
166
+ text_color=n["text_color"],
146
167
  )
147
168
 
169
+ def _light(self):
170
+ self._theme("light", "standard")
171
+
148
172
  def _light_accent(self):
149
- self.dconfigure(
150
- back_color="#005fb8",
151
- border_color="#005fb8",
152
- border_width=1,
153
- text_color="#ffffff",
154
- )
173
+ self._theme("light", "accent")
155
174
 
156
175
  def _dark(self):
157
- self.dconfigure(
158
- back_color="#242424",
159
- border_color="#242424",
160
- border_width=1,
161
- text_color="#ffffff",
162
- )
176
+ self._theme("dark", "standard")
163
177
 
164
178
  def _dark_accent(self):
165
- self.dconfigure(
166
- back_color="#60cdff",
167
- border_color="#60cdff",
168
- border_width=1,
169
- text_color="#000000",
170
- )
179
+ self._theme("dark", "accent")
tkflu/button.py CHANGED
@@ -2,11 +2,14 @@ from tkdeft.windows.draw import DSvgDraw
2
2
  from tkdeft.windows.canvas import DCanvas
3
3
  from tkdeft.windows.drawwidget import DDrawWidget
4
4
 
5
+ from .designs.button import button
6
+
5
7
 
6
8
  class FluButtonDraw(DSvgDraw):
7
9
  def create_roundrect(self,
8
10
  x1, y1, x2, y2, radius, radiusy=None, temppath=None,
9
- fill="transparent", outline="black", outline2="black", width=1
11
+ fill="transparent", fill_opacity=1,
12
+ outline="black", outline2=None, outline_opacity=1, outline2_opacity=1, width=1,
10
13
  ):
11
14
  if radiusy:
12
15
  _rx = radius
@@ -14,15 +17,23 @@ class FluButtonDraw(DSvgDraw):
14
17
  else:
15
18
  _rx, _ry = radius, radius
16
19
  drawing = self.create_drawing(x2 - x1, y2 - y1, temppath=temppath)
17
- border = drawing[1].linearGradient(start=(x1, y1), end=(x1, y2), id="DButton.Border")
18
- border.add_stop_color("0%", outline)
19
- border.add_stop_color("100%", outline2)
20
- drawing[1].defs.add(border)
20
+ if outline2:
21
+ border = drawing[1].linearGradient(start=(x1, y1), end=(x1, y2), id="DButton.Border",
22
+ gradientUnits="userSpaceOnUse")
23
+ border.add_stop_color("0.9", outline, outline_opacity)
24
+ border.add_stop_color("1", outline2, outline2_opacity)
25
+ drawing[1].defs.add(border)
26
+ stroke = f"url(#{border.get_id()})"
27
+ stroke_opacity = 1
28
+ else:
29
+ stroke = outline
30
+ stroke_opacity = outline_opacity
21
31
  drawing[1].add(
22
32
  drawing[1].rect(
23
33
  (x1, y1), (x2 - x1, y2 - y1), _rx, _ry,
24
- fill=fill, stroke_width=width,
25
- stroke=f"url(#{border.get_id()})",
34
+ fill=fill, fill_opacity=fill_opacity,
35
+ stroke=stroke, stroke_width=width, stroke_opacity=stroke_opacity,
36
+ transform="translate(0.500000 0.500000)"
26
37
  )
27
38
  )
28
39
  drawing[1].save()
@@ -34,11 +45,15 @@ class FluButtonCanvas(DCanvas):
34
45
 
35
46
  def create_round_rectangle(self,
36
47
  x1, y1, x2, y2, r1, r2=None, temppath=None,
37
- fill="transparent", outline="black", outline2="black", width=1
48
+ fill="transparent", fill_opacity=1,
49
+ outline="black", outline2="black", outline_opacity=1, outline2_opacity=1,
50
+ width=1,
38
51
  ):
39
52
  self._img = self.svgdraw.create_roundrect(
40
53
  x1, y1, x2, y2, r1, r2, temppath=temppath,
41
- fill=fill, outline=outline, outline2=outline2, width=width
54
+ fill=fill, fill_opacity=fill_opacity,
55
+ outline=outline, outline2=outline2, outline_opacity=outline_opacity, outline2_opacity=outline2_opacity,
56
+ width=width,
42
57
  )
43
58
  self._tkimg = self.svgdraw.create_tksvg_image(self._img)
44
59
  return self.create_image(x1, y1, anchor="nw", image=self._tkimg)
@@ -55,6 +70,7 @@ class FluButton(FluButtonCanvas, DDrawWidget):
55
70
  font=None,
56
71
  mode="light",
57
72
  style="standard",
73
+ state="normal",
58
74
  **kwargs):
59
75
  self._init(mode, style)
60
76
 
@@ -67,7 +83,8 @@ class FluButton(FluButtonCanvas, DDrawWidget):
67
83
 
68
84
  self.dconfigure(
69
85
  text=text,
70
- command=command
86
+ command=command,
87
+ state=state,
71
88
  )
72
89
 
73
90
  self.bind("<<Clicked>>", lambda event=None: self.focus_set(), add="+")
@@ -75,9 +92,8 @@ class FluButton(FluButtonCanvas, DDrawWidget):
75
92
 
76
93
  self.bind("<Return>", lambda event=None: self.attributes.command(), add="+") # 可以使用回车键模拟点击
77
94
 
78
- if font is None:
79
- from tkdeft.utility.fonts import SegoeFont
80
- self.attributes.font = SegoeFont()
95
+ from .defs import set_default_font
96
+ set_default_font(font, self.attributes)
81
97
 
82
98
  def _init(self, mode, style):
83
99
 
@@ -88,31 +104,12 @@ class FluButton(FluButtonCanvas, DDrawWidget):
88
104
  "text": "",
89
105
  "command": None,
90
106
  "font": None,
107
+ "state": "normal",
91
108
 
92
- "rest": {
93
- "back_color": "#ffffff",
94
- "border_color": "#f0f0f0",
95
- "border_color2": "#d6d6d6",
96
- "border_width": 1,
97
- "radius": 6,
98
- "text_color": "#1b1b1b",
99
- },
100
- "hover": {
101
- "back_color": "#fcfcfc",
102
- "border_color": "#f0f0f0",
103
- "border_color2": "#d6d6d6",
104
- "border_width": 1,
105
- "radius": 6,
106
- "text_color": "#1b1b1b",
107
- },
108
- "pressed": {
109
- "back_color": "#fdfdfd",
110
- "border_color": "#f0f0f0",
111
- "border_color2": "#f0f0f0",
112
- "border_width": 1,
113
- "radius": 6,
114
- "text_color": "#636363",
115
- }
109
+ "rest": {},
110
+ "hover": {},
111
+ "pressed": {},
112
+ "disabled": {}
116
113
  }
117
114
  )
118
115
 
@@ -121,35 +118,44 @@ class FluButton(FluButtonCanvas, DDrawWidget):
121
118
  def _draw(self, event=None):
122
119
  super()._draw(event)
123
120
 
121
+ width = self.winfo_width()
122
+ height = self.winfo_height()
123
+
124
124
  self.delete("all")
125
125
 
126
- if self.enter:
127
- if self.button1:
128
- _back_color = self.attributes.pressed.back_color
129
- _border_color = self.attributes.pressed.border_color
130
- _border_color2 = self.attributes.pressed.border_color2
131
- _border_width = self.attributes.pressed.border_width
132
- _radius = self.attributes.pressed.radius
133
- _text_color = self.attributes.pressed.text_color
126
+ state = self.dcget("state")
127
+
128
+ _dict = None
129
+
130
+ if state == "normal":
131
+ if self.enter:
132
+ if self.button1:
133
+ _dict = self.attributes.pressed
134
+ else:
135
+ _dict = self.attributes.hover
134
136
  else:
135
- _back_color = self.attributes.hover.back_color
136
- _border_color = self.attributes.hover.border_color
137
- _border_color2 = self.attributes.hover.border_color2
138
- _border_width = self.attributes.hover.border_width
139
- _radius = self.attributes.hover.radius
140
- _text_color = self.attributes.hover.text_color
137
+ _dict = self.attributes.rest
141
138
  else:
142
- _back_color = self.attributes.rest.back_color
143
- _border_color = self.attributes.rest.border_color
144
- _border_color2 = self.attributes.rest.border_color2
145
- _border_width = self.attributes.rest.border_width
146
- _radius = self.attributes.rest.radius
147
- _text_color = self.attributes.rest.text_color
139
+ _dict = self.attributes.disabled
140
+
141
+ _back_color = _dict.back_color
142
+ _back_opacity = _dict.back_opacity
143
+ _border_color = _dict.border_color
144
+ _border_color_opacity = _dict.border_color_opacity
145
+ _border_color2 = _dict.border_color2
146
+ _border_color2_opacity = _dict.border_color2_opacity
147
+ _border_width = _dict.border_width
148
+ _radius = _dict.radius
149
+ _text_color = _dict.text_color
148
150
 
149
151
  self.element_border = self.create_round_rectangle(
150
- 0, 0, self.winfo_width(), self.winfo_height(), _radius, temppath=self.temppath,
151
- fill=_back_color, outline=_border_color, outline2=_border_color2, width=_border_width
152
+ 0, 0, width, height, _radius, temppath=self.temppath,
153
+ fill=_back_color, fill_opacity=_back_opacity,
154
+ outline=_border_color, outline_opacity=_border_color_opacity, outline2=_border_color2,
155
+ outline2_opacity=_border_color2_opacity,
156
+ width=_border_width,
152
157
  )
158
+
153
159
  self.element_text = self.create_text(
154
160
  self.winfo_width() / 2, self.winfo_height() / 2, anchor="center",
155
161
  fill=_text_color, text=self.attributes.text, font=self.attributes.font
@@ -175,173 +181,85 @@ class FluButton(FluButtonCanvas, DDrawWidget):
175
181
  else:
176
182
  self._light()
177
183
 
178
- def _light(self):
184
+ def _theme(self, mode, style):
185
+ r = button(mode, style, "rest")
186
+ h = button(mode, style, "hover")
187
+ p = button(mode, style, "pressed")
188
+ d = button(mode, style, "disabled")
179
189
  self.dconfigure(
180
190
  rest={
181
- "back_color": "#ffffff",
182
- "border_color": "#e5e5e5",
183
- "border_color2": "#cccccc",
184
- "border_width": 1,
185
- "radius": 6,
186
- "text_color": "#1b1b1b",
191
+ "back_color": r["back_color"],
192
+ "back_opacity": r["back_opacity"],
193
+ "border_color": r["border_color"],
194
+ "border_color_opacity": r["border_color_opacity"],
195
+ "border_color2": r["border_color2"],
196
+ "border_color2_opacity": r["border_color2_opacity"],
197
+ "border_width": r["border_width"],
198
+ "radius": r["radius"],
199
+ "text_color": r["text_color"],
187
200
  },
188
201
  hover={
189
- "back_color": "#fcfcfc",
190
- "border_color": "#e5e5e5",
191
- "border_color2": "#cccccc",
192
- "border_width": 1,
193
- "radius": 6,
194
- "text_color": "#1b1b1b",
202
+ "back_color": h["back_color"],
203
+ "back_opacity": h["back_opacity"],
204
+ "border_color": h["border_color"],
205
+ "border_color_opacity": h["border_color_opacity"],
206
+ "border_color2": h["border_color2"],
207
+ "border_color2_opacity": h["border_color2_opacity"],
208
+ "border_width": h["border_width"],
209
+ "radius": h["radius"],
210
+ "text_color": h["text_color"],
195
211
  },
196
212
  pressed={
197
- "back_color": "#fdfdfd",
198
- "border_color": "#e5e5e5",
199
- "border_color2": "#e5e5e5",
200
- "border_width": 1,
201
- "radius": 6,
202
- "text_color": "#636363",
213
+ "back_color": p["back_color"],
214
+ "back_opacity": p["back_opacity"],
215
+ "border_color": p["border_color"],
216
+ "border_color_opacity": p["border_color_opacity"],
217
+ "border_color2": p["border_color2"],
218
+ "border_color2_opacity": p["border_color2_opacity"],
219
+ "border_width": p["border_width"],
220
+ "radius": p["radius"],
221
+ "text_color": p["text_color"],
222
+ },
223
+ disabled={
224
+ "back_color": d["back_color"],
225
+ "back_opacity": d["back_opacity"],
226
+ "border_color": d["border_color"],
227
+ "border_color_opacity": d["border_color_opacity"],
228
+ "border_color2": d["border_color2"],
229
+ "border_color2_opacity": d["border_color2_opacity"],
230
+ "border_width": d["border_width"],
231
+ "radius": d["radius"],
232
+ "text_color": d["text_color"],
203
233
  }
204
234
  )
205
235
 
236
+ def _light(self):
237
+ self._theme("light", "standard")
238
+
206
239
  def _light_menu(self):
207
- self.dconfigure(
208
- rest={
209
- "back_color": "#ffffff",
210
- "border_color": "white",
211
- "border_color2": "white",
212
- "border_width": 0,
213
- "radius": 6,
214
- "text_color": "#1b1b1b",
215
- },
216
- hover={
217
- "back_color": "#eaeaea",
218
- "border_color": "#f0f0f0",
219
- "border_color2": "#d6d6d6",
220
- "border_width": 0,
221
- "radius": 6,
222
- "text_color": "#1b1b1b",
223
- },
224
- pressed={
225
- "back_color": "#ededed",
226
- "border_color": "#f0f0f0",
227
- "border_color2": "#f0f0f0",
228
- "border_width": 0,
229
- "radius": 6,
230
- "text_color": "#636363",
231
- }
232
- )
240
+ self._theme("light", "menu")
233
241
 
234
242
  def _light_accent(self):
235
- self.dconfigure(
236
- rest={
237
- "back_color": "#005fb8",
238
- "border_color": "#146cbe",
239
- "border_color2": "#00396e",
240
- "border_width": 1,
241
- "radius": 6,
242
- "text_color": "#ffffff",
243
- },
244
- hover={
245
- "back_color": "#0359a9",
246
- "border_color": "#1766b0",
247
- "border_color2": "#0f4373",
248
- "border_width": 1,
249
- "radius": 6,
250
- "text_color": "#ffffff",
251
- },
252
- pressed={
253
- "back_color": "#005fb8",
254
- "border_color": "#4389ca",
255
- "border_color2": "#4389ca",
256
- "border_width": 1,
257
- "radius": 6,
258
- "text_color": "#b4cbe0",
259
- }
260
- )
243
+ self._theme("light", "accent")
261
244
 
262
245
  def _dark(self):
263
- self.dconfigure(
264
- rest={
265
- "back_color": "#272727",
266
- "border_color": "#303030",
267
- "border_color2": "#262626",
268
- "border_width": 1,
269
- "radius": 6,
270
- "text_color": "#ffffff",
271
- },
272
- hover={
273
- "back_color": "#2d2d2d",
274
- "border_color": "#303030",
275
- "border_color2": "#262626",
276
- "border_width": 1,
277
- "radius": 6,
278
- "text_color": "#ffffff",
279
- },
280
- pressed={
281
- "back_color": "#212121",
282
- "border_color": "#2a2a2a",
283
- "border_color2": "#262626",
284
- "border_width": 1,
285
- "radius": 6,
286
- "text_color": "#cfcfcf",
287
- }
288
- )
246
+ self._theme("dark", "standard")
289
247
 
290
248
  def _dark_menu(self):
291
- self.dconfigure(
292
- rest={
293
- "back_color": "#202020",
294
- "border_color": "black",
295
- "border_color2": "black",
296
- "border_width": 0,
297
- "radius": 6,
298
- "text_color": "#ffffff",
299
- },
300
- hover={
301
- "back_color": "#2d2d2d",
302
- "border_color": "#303030",
303
- "border_color2": "#262626",
304
- "border_width": 0,
305
- "radius": 6,
306
- "text_color": "#ffffff",
307
- },
308
- pressed={
309
- "back_color": "#292929",
310
- "border_color": "#2a2a2a",
311
- "border_color2": "#262626",
312
- "border_width": 0,
313
- "radius": 6,
314
- "text_color": "#cfcfcf",
315
- }
316
- )
249
+ self._theme("dark", "menu")
317
250
 
318
251
  def _dark_accent(self):
319
- self.dconfigure(
320
- rest={
321
- "back_color": "#60cdff",
322
- "border_color": "#6cd1ff",
323
- "border_color2": "#56b4df",
324
- "border_width": 1,
325
- "radius": 6,
326
- "text_color": "#000000",
327
- },
328
- hover={
329
- "back_color": "#5abce9",
330
- "border_color": "#67c1eb",
331
- "border_color2": "#50a5cc",
332
- "border_width": 1,
333
- "radius": 6,
334
- "text_color": "#000000",
335
- },
336
- pressed={
337
- "back_color": "#52a9d1",
338
- "border_color": "#60b0d5",
339
- "border_color2": "#60b0d5",
340
- "border_width": 1,
341
- "radius": 6,
342
- "text_color": "#295468",
343
- }
344
- )
252
+ self._theme("dark", "accent")
345
253
 
346
254
  def invoke(self):
347
255
  self.attributes.command()
256
+
257
+ def _event_off_button1(self, event=None):
258
+ self.button1 = False
259
+
260
+ self._draw(event)
261
+
262
+ if self.enter:
263
+ # self.focus_set()
264
+ if self.dcget("state") == "normal":
265
+ self.event_generate("<<Clicked>>")