tkfluent 0.1.4__py3-none-any.whl → 0.1.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/slider.py CHANGED
@@ -119,12 +119,15 @@ class FluSlider(FluSliderCanvas, DDrawWidget):
119
119
  text="",
120
120
  width=70,
121
121
  height=28,
122
+ orient="horizontal",
123
+ tick=False, # 自动吸附
122
124
  font=None,
123
125
  mode="light",
124
126
  state="normal",
125
127
  value=20,
126
128
  max=100,
127
129
  min=0,
130
+ changed=None,
128
131
  **kwargs
129
132
  ):
130
133
 
@@ -148,12 +151,17 @@ class FluSlider(FluSliderCanvas, DDrawWidget):
148
151
  state=state,
149
152
  value=value,
150
153
  max=max, min=min,
154
+ orient=orient, tick=tick, changed=changed,
151
155
  )
152
156
 
157
+
158
+
153
159
  super().__init__(*args, width=width, height=height, **kwargs)
154
160
 
155
161
  self.bind("<<Clicked>>", lambda event=None: self.focus_set(), add="+")
156
162
 
163
+ #self.bind("<Left>", lambda event:print("asd1"))
164
+
157
165
  self.bind("<B1-Motion>", self._event_button1_motion)
158
166
 
159
167
  self.enter_thumb = False
@@ -168,6 +176,9 @@ class FluSlider(FluSliderCanvas, DDrawWidget):
168
176
  {
169
177
  "command": None,
170
178
  "state": None,
179
+ "orient": "horizontal",
180
+ "tick": False,
181
+ "changed": None,
171
182
 
172
183
  "value": 20,
173
184
  "max": 100,
@@ -250,74 +261,83 @@ class FluSlider(FluSliderCanvas, DDrawWidget):
250
261
  _thumb_inner_back_color = _dict.thumb.inner_back_color
251
262
  _thumb_inner_back_opacity = _dict.thumb.inner_back_opacity
252
263
 
253
- thumb_xp = self.attributes.value / (self.attributes.max - self.attributes.min) # 滑块对应数值的比例
254
- thumb_x = self.winfo_width() * thumb_xp # 滑块对应数值的x左边
255
-
256
- width = self.winfo_width()
257
- height = self.winfo_height()
258
- # 修改滑块位置计算
259
- thumb_width = _thumb_width
260
- min_x = thumb_width / 2
261
- max_x = self.winfo_width() - thumb_width / 2
262
- track_length = max_x - min_x
263
-
264
- # 计算轨道实际可用宽度(减去滑块宽度)
265
- effective_track_width = self.winfo_width() - thumb_width
266
-
267
- thumb_xp = (self.attributes.value - self.attributes.min) / (self.attributes.max - self.attributes.min)
268
- thumb_center = thumb_width / 2 + thumb_xp * effective_track_width
269
-
270
- thumb_width = _thumb_width
271
- effective_width = self.winfo_width() - thumb_width
272
- ratio = (self.attributes.value - self.attributes.min) / (self.attributes.max - self.attributes.min)
273
- thumb_left = thumb_width / 2 + ratio * effective_width - thumb_width / 2
274
-
275
- # 确保不会超出右边界
276
- thumb_left = min(thumb_left, self.winfo_width() - thumb_width)
277
-
278
- # 创建轨道时,width2 参数应为选中部分的宽度(滑块中心位置)
279
- self.element_track = self.create_track(
280
- _thumb_width / 4,
281
- height / 2 - _track_height,
282
- self.winfo_width() - _thumb_width / 2,
283
- _track_height,
284
- thumb_center - _thumb_width / 4, # 关键修正:使用滑块中心相对于轨道起点的距离
285
- temppath=self.temppath, radius=_radius,
286
- track_fill=_track_back_color, track_opacity=_track_back_opacity,
287
- rail_fill=_rail_back_color, rail_opacity=_rail_back_opacity
288
- )
264
+ if self.attributes.orient == "horizontal":
265
+ thumb_xp = self.attributes.value / (self.attributes.max - self.attributes.min) # 滑块对应数值的比例
266
+ thumb_x = self.winfo_width() * thumb_xp # 滑块对应数值的x左边
267
+
268
+ width = self.winfo_width()
269
+ height = self.winfo_height()
270
+ # 修改滑块位置计算
271
+ thumb_width = _thumb_width
272
+ min_x = thumb_width / 2
273
+ max_x = self.winfo_width() - thumb_width / 2
274
+ track_length = max_x - min_x
275
+
276
+ # 计算轨道实际可用宽度(减去滑块宽度)
277
+ effective_track_width = self.winfo_width() - thumb_width
278
+
279
+ thumb_xp = (self.attributes.value - self.attributes.min) / (self.attributes.max - self.attributes.min)
280
+ thumb_center = thumb_width / 2 + thumb_xp * effective_track_width
281
+
282
+ thumb_width = _thumb_width
283
+ effective_width = self.winfo_width() - thumb_width
284
+ ratio = (self.attributes.value - self.attributes.min) / (self.attributes.max - self.attributes.min)
285
+ thumb_left = thumb_width / 2 + ratio * effective_width - thumb_width / 2
286
+
287
+ # 确保不会超出右边界
288
+ thumb_left = min(thumb_left, self.winfo_width() - thumb_width)
289
+
290
+ # 创建轨道时,width2 参数应为选中部分的宽度(滑块中心位置)
291
+ self.element_track = self.create_track(
292
+ _thumb_width / 4,
293
+ height / 2 - _track_height,
294
+ self.winfo_width() - _thumb_width / 2,
295
+ _track_height,
296
+ thumb_center - _thumb_width / 4, # 关键修正:使用滑块中心相对于轨道起点的距离
297
+ temppath=self.temppath, radius=_radius,
298
+ track_fill=_track_back_color, track_opacity=_track_back_opacity,
299
+ rail_fill=_rail_back_color, rail_opacity=_rail_back_opacity
300
+ )
289
301
 
290
- self.element_thumb = self.create_thumb(
291
- thumb_left, 0, # 直接使用计算出的左上角位置
292
- thumb_width, thumb_width,
293
- _thumb_radius, _thumb_inner_radius,
294
- temppath=self.temppath2, fill=_thumb_back_color, fill_opacity=_thumb_back_opacity,
295
- outline=_thumb_border_color, outline_opacity=_thumb_border_color_opacity,
296
- outline2=_thumb_border_color2, outline2_opacity=_thumb_border_color2_opacity,
297
- inner_fill=_thumb_inner_back_color, inner_fill_opacity=_thumb_inner_back_opacity,
298
- )
302
+ self.element_thumb = self.create_thumb(
303
+ thumb_left, 0, # 直接使用计算出的左上角位置
304
+ thumb_width, thumb_width,
305
+ _thumb_radius, _thumb_inner_radius,
306
+ temppath=self.temppath2, fill=_thumb_back_color, fill_opacity=_thumb_back_opacity,
307
+ outline=_thumb_border_color, outline_opacity=_thumb_border_color_opacity,
308
+ outline2=_thumb_border_color2, outline2_opacity=_thumb_border_color2_opacity,
309
+ inner_fill=_thumb_inner_back_color, inner_fill_opacity=_thumb_inner_back_opacity,
310
+ )
299
311
 
300
312
  self._e1 = self.tag_bind(self.element_thumb, "<Enter>", self._event_enter_thumb, add="+")
301
313
  self._e2 = self.tag_bind(self.element_thumb, "<Leave>", self._event_leave_thumb, add="+")
302
314
 
303
315
  def pos(self, event):
304
- #print(event.x, event.y)
305
- #if self.enter and self.button1:
306
- # 获取滑块宽度
307
- thumb_width = self.attributes.pressed.thumb.width
308
-
309
- # 计算有效轨道长度
310
- effective_width = self.winfo_width() - thumb_width
311
-
312
- # 计算滑块位置比例(考虑滑块宽度边界)
313
- ratio = (event.x - thumb_width/2) / effective_width
314
- ratio = max(0, min(1, ratio)) # 限制在0-1范围内
315
-
316
- # 计算实际值
317
- value = self.attributes.min + ratio * (self.attributes.max - self.attributes.min)
318
- self.dconfigure(value=value)
319
- self._draw()
320
- #print(self.focus_get())
316
+ if self.attributes.state == "normal":
317
+ #print(event.x, event.y)
318
+ #if self.enter and self.button1:
319
+ # 获取滑块宽度
320
+ thumb_width = self.attributes.pressed.thumb.width
321
+
322
+ # 计算有效轨道长度
323
+ effective_width = self.winfo_width() - thumb_width
324
+
325
+ # 计算滑块位置比例(考虑滑块宽度边界)
326
+ ratio = (event.x - thumb_width/2) / effective_width
327
+ ratio = max(0, min(1, ratio)) # 限制在0-1范围内
328
+
329
+ # 计算实际值
330
+ value = self.attributes.min + ratio * (self.attributes.max - self.attributes.min)
331
+ if self.attributes.tick:
332
+ value = round(value)
333
+ self.dconfigure(value=value)
334
+ self._draw()
335
+ #print(self.focus_get())
336
+
337
+ def _event_off_button1(self, event=None):
338
+ if self.attributes.state == "normal":
339
+ if self.attributes.changed:
340
+ self.attributes.changed()
321
341
 
322
342
 
323
343
  def _event_enter_thumb(self, event=None):
tkflu/text.py CHANGED
@@ -195,14 +195,7 @@ class FluText(FluTextCanvas, DDrawWidget, FluToolTipBase):
195
195
  )
196
196
  self.itemconfigure(self.element_line, width=_underline_width, fill=_underline_fill)
197
197
  """
198
- if hasattr(self, "element_line"):
199
- self.delete(self.element_line)
200
- if _underline_fill:
201
- self.element_line = self.create_line(
202
- _radius / 3 + _border_width, self.winfo_height() - _radius / 3,
203
- self.winfo_width() - _radius / 3 - _border_width * 2, self.winfo_height() - _radius / 3,
204
- width=_underline_width, fill=_underline_fill
205
- )
198
+
206
199
  """
207
200
  if not hasattr(self, "element_text"):
208
201
  self.element_text = self.create_window(
@@ -223,8 +216,16 @@ class FluText(FluTextCanvas, DDrawWidget, FluToolTipBase):
223
216
  width=self.winfo_width() - _border_width * 2 - _radius,
224
217
  height=self.winfo_height() - _border_width * 2 - _radius
225
218
  )
219
+ if hasattr(self, "element_line"):
220
+ self.delete(self.element_line)
221
+ if _underline_fill:
222
+ self.element_line = self.create_line(
223
+ _radius / 3 + _border_width, self.winfo_height() - _radius / 3,
224
+ self.winfo_width() - _radius / 3 - _border_width * 2, self.winfo_height() - _radius / 3,
225
+ width=_underline_width, fill=_underline_fill
226
+ )
226
227
  self.tag_raise(self.element_text, self.element_border)
227
- self.tag_raise(self.element_line, self.element_border)
228
+ #self.tag_raise(self.element_line, self.element_text)
228
229
 
229
230
  #self.tag_raise(self.element_text)
230
231
 
tkflu/togglebutton.py CHANGED
@@ -91,9 +91,9 @@ class FluToggleButton(FluToggleButtonCanvas, DDrawWidget, FluToolTipBase, FluGra
91
91
 
92
92
  self.bind("<<Clicked>>", lambda event=None: self.toggle(), add="+")
93
93
  self.bind("<<Clicked>>", lambda event=None: self.focus_set(), add="+")
94
- self.bind("<<Clicked>>", lambda event=None: self.attributes.command(), add="+")
94
+ self.bind("<<Clicked>>", lambda event=None: self.invoke(), add="+")
95
95
 
96
- self.bind("<Return>", lambda event=None: self.attributes.command(), add="+") # 可以使用回车键模拟点击
96
+ self.bind("<Return>", lambda event=None: self.invoke(), add="+") # 可以使用回车键模拟点击
97
97
  self.bind("<Return>", lambda event=None: self.toggle(), add="+") # 可以使用回车键模拟点击
98
98
 
99
99
  from .defs import set_default_font
@@ -389,91 +389,94 @@ class FluToggleButton(FluToggleButtonCanvas, DDrawWidget, FluToolTipBase, FluGra
389
389
  )
390
390
 
391
391
  def invoke(self):
392
- self.attributes.command()
392
+ if self.attributes.state == "normal":
393
+ self.attributes.command()
393
394
 
394
395
  def toggle(self, animation_steps: int = None, animation_step_time: int = None):
395
- if animation_steps is None:
396
- from .designs.animation import get_animation_steps
397
- animation_steps = get_animation_steps()
398
- if animation_step_time is None:
399
- from .designs.animation import get_animation_step_time
400
- animation_step_time = get_animation_step_time()
401
- check = self.attributes.check
402
- uncheck = self.attributes.uncheck
403
- if not animation_steps == 0 or not animation_step_time == 0:
404
- steps = animation_steps
405
- if uncheck.pressed.border_color2 is None:
406
- uncheck.pressed.border_color2 = uncheck.pressed.border_color
407
- if check.pressed.border_color2 is None:
408
- check.pressed.border_color2 = check.pressed.border_color
409
- if uncheck.pressed.border_color2_opacity is None:
410
- uncheck.pressed.border_color2_opacity = uncheck.pressed.border_color_opacity
411
- if check.pressed.border_color2_opacity is None:
412
- check.pressed.border_color2_opacity = check.pressed.border_color_opacity
413
- if self.attributes.checked:
414
- self.attributes.checked = False
415
- back_colors = self.generate_hex2hex(
416
- check.pressed.back_color, uncheck.rest.back_color, steps
417
- )
418
- border_colors = self.generate_hex2hex(
419
- check.pressed.border_color, uncheck.rest.border_color, steps
420
- )
421
- border_colors2 = self.generate_hex2hex(
422
- check.pressed.border_color2, uncheck.rest.border_color2, steps
423
- )
424
- text_colors = self.generate_hex2hex(
425
- check.pressed.text_color, uncheck.rest.text_color, steps
426
- )
427
- import numpy as np
428
- back_opacitys = np.linspace(
429
- float(check.pressed.back_opacity), float(uncheck.rest.back_opacity), steps).tolist()
430
- border_color_opacitys = np.linspace(
431
- float(check.pressed.border_color_opacity), float(uncheck.rest.border_color_opacity), steps).tolist()
432
- border_color2_opacitys = np.linspace(
433
- float(check.pressed.border_color2_opacity), float(uncheck.rest.border_color2_opacity), steps).tolist()
434
- else:
435
- self.attributes.checked = True
436
- back_colors = self.generate_hex2hex(
437
- uncheck.pressed.back_color, check.rest.back_color, steps
438
- )
439
- border_colors = self.generate_hex2hex(
440
- uncheck.pressed.back_color, check.rest.back_color, steps
441
- )
442
- border_colors2 = self.generate_hex2hex(
443
- uncheck.pressed.border_color2, check.rest.border_color2, steps
444
- )
445
- text_colors = self.generate_hex2hex(
446
- uncheck.pressed.text_color, check.rest.text_color, steps
447
- )
448
- import numpy as np
449
- back_opacitys = np.linspace(float(uncheck.pressed.back_opacity), float(check.rest.back_opacity),
450
- steps).tolist()
451
- border_color_opacitys = np.linspace(float(uncheck.pressed.border_color_opacity), float(check.rest.border_color_opacity),
452
- steps).tolist()
453
- border_color2_opacitys = np.linspace(float(uncheck.pressed.border_color2_opacity),
454
- float(check.rest.border_color2_opacity),
455
- steps).tolist()
456
- for i in range(steps):
457
- def update(ii=i):
458
- from easydict import EasyDict
459
- tempcolor = EasyDict(
460
- {
461
- "back_color": back_colors[ii],
462
- "back_opacity": back_opacitys[ii],
463
- "border_color": border_colors[ii],
464
- "border_color_opacity": str(border_color_opacitys[ii]),
465
- "border_color2": border_colors2[ii],
466
- "border_color2_opacity": str(border_color2_opacitys[ii]),
467
- "border_width": 1,
468
- "text_color": text_colors[ii],
469
- "radius": 6,
470
- }
396
+ if self.attributes.state == "normal":
397
+ if animation_steps is None:
398
+ from .designs.animation import get_animation_steps
399
+ animation_steps = get_animation_steps()
400
+ if animation_step_time is None:
401
+ from .designs.animation import get_animation_step_time
402
+ animation_step_time = get_animation_step_time()
403
+ check = self.attributes.check
404
+ uncheck = self.attributes.uncheck
405
+ if not animation_steps == 0 or not animation_step_time == 0:
406
+ steps = animation_steps
407
+ if uncheck.pressed.border_color2 is None:
408
+ uncheck.pressed.border_color2 = uncheck.pressed.border_color
409
+ if check.pressed.border_color2 is None:
410
+ check.pressed.border_color2 = check.pressed.border_color
411
+ if uncheck.pressed.border_color2_opacity is None:
412
+ uncheck.pressed.border_color2_opacity = uncheck.pressed.border_color_opacity
413
+ if check.pressed.border_color2_opacity is None:
414
+ check.pressed.border_color2_opacity = check.pressed.border_color_opacity
415
+ if self.attributes.checked:
416
+ self.attributes.checked = False
417
+ back_colors = self.generate_hex2hex(
418
+ check.pressed.back_color, uncheck.rest.back_color, steps
471
419
  )
472
- self._draw(None, tempcolor)
473
- self.after(i*animation_step_time, update)
474
- self.after(steps*animation_step_time+10, lambda: self._draw(None, None))
475
- else:
476
- if self.attributes.checked:
477
- self.attributes.checked = False
420
+ border_colors = self.generate_hex2hex(
421
+ check.pressed.border_color, uncheck.rest.border_color, steps
422
+ )
423
+ border_colors2 = self.generate_hex2hex(
424
+ check.pressed.border_color2, uncheck.rest.border_color2, steps
425
+ )
426
+ text_colors = self.generate_hex2hex(
427
+ check.pressed.text_color, uncheck.rest.text_color, steps
428
+ )
429
+ import numpy as np
430
+ back_opacitys = np.linspace(
431
+ float(check.pressed.back_opacity), float(uncheck.rest.back_opacity), steps).tolist()
432
+ border_color_opacitys = np.linspace(
433
+ float(check.pressed.border_color_opacity), float(uncheck.rest.border_color_opacity), steps).tolist()
434
+ border_color2_opacitys = np.linspace(
435
+ float(check.pressed.border_color2_opacity), float(uncheck.rest.border_color2_opacity), steps).tolist()
436
+ else:
437
+ self.attributes.checked = True
438
+ back_colors = self.generate_hex2hex(
439
+ uncheck.pressed.back_color, check.rest.back_color, steps
440
+ )
441
+ border_colors = self.generate_hex2hex(
442
+ uncheck.pressed.back_color, check.rest.back_color, steps
443
+ )
444
+ border_colors2 = self.generate_hex2hex(
445
+ uncheck.pressed.border_color2, check.rest.border_color2, steps
446
+ )
447
+ text_colors = self.generate_hex2hex(
448
+ uncheck.pressed.text_color, check.rest.text_color, steps
449
+ )
450
+ import numpy as np
451
+ back_opacitys = np.linspace(float(uncheck.pressed.back_opacity), float(check.rest.back_opacity),
452
+ steps).tolist()
453
+ border_color_opacitys = np.linspace(float(uncheck.pressed.border_color_opacity), float(check.rest.border_color_opacity),
454
+ steps).tolist()
455
+ border_color2_opacitys = np.linspace(float(uncheck.pressed.border_color2_opacity),
456
+ float(check.rest.border_color2_opacity),
457
+ steps).tolist()
458
+ for i in range(steps):
459
+ def update(ii=i):
460
+ from easydict import EasyDict
461
+ tempcolor = EasyDict(
462
+ {
463
+ "back_color": back_colors[ii],
464
+ "back_opacity": back_opacitys[ii],
465
+ "border_color": border_colors[ii],
466
+ "border_color_opacity": str(border_color_opacitys[ii]),
467
+ "border_color2": border_colors2[ii],
468
+ "border_color2_opacity": str(border_color2_opacitys[ii]),
469
+ "border_width": 1,
470
+ "text_color": text_colors[ii],
471
+ "radius": 6,
472
+ }
473
+ )
474
+ self._draw(None, tempcolor)
475
+ self.after(i*animation_step_time, update)
476
+ self.after(steps*animation_step_time+10, lambda: self._draw(None, None))
478
477
  else:
479
- self.attributes.checked = True
478
+ if self.attributes.checked:
479
+ self.attributes.checked = False
480
+ else:
481
+ self.attributes.checked = True
482
+ self._draw()
tkflu/tooltip.py CHANGED
@@ -37,18 +37,6 @@ class FluToolTip(FluPopupWindow):
37
37
  round(self._widget.winfo_rootx() + self._widget.winfo_width() / 2 - self.winfo_width() / 2),
38
38
  round(self._widget.winfo_rooty() + self._widget.winfo_height() + 2)
39
39
  )
40
- self.wm_attributes("-alpha", 0.0)
41
- self.deiconify()
42
-
43
- def fade_in(step=0):
44
- FRAMES_COUNT = 20
45
- alpha = step / FRAMES_COUNT # 按帧数变化,从0到1
46
- self.wm_attributes("-alpha", alpha)
47
- if step < FRAMES_COUNT:
48
- # 每执行一次,增加一次透明度,间隔由帧数决定
49
- self.after(int(round(self._show_time/FRAMES_COUNT)), lambda: fade_in(step + 1))
50
-
51
- fade_in() # 启动动画
52
40
 
53
41
  self.id = self.after(self._delay, check)
54
42
  self._enter = True
@@ -104,6 +92,9 @@ class FluToolTip2(FluPopupWindow):
104
92
 
105
93
  self.theme(mode)
106
94
 
95
+ def popup2(self, x, y):
96
+ self.geometry(f"+{x}+{y}")
97
+
107
98
  def show(self, event: Event):
108
99
  self.popup(
109
100
  round(event.x_root - self.winfo_width() / 2),
@@ -115,7 +106,7 @@ class FluToolTip2(FluPopupWindow):
115
106
  self.withdraw()
116
107
 
117
108
  def move(self, event):
118
- self.popup(
109
+ self.popup2(
119
110
  round(event.x_root - self.winfo_width() / 2),
120
111
  round(event.y_root + 10)
121
112
  )
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: tkfluent
3
- Version: 0.1.4
3
+ Version: 0.1.5
4
4
  Summary: Fluent(SunValley) Design for Tkinter. Modern GUI
5
5
  License: GPL-3.0
6
6
  Keywords: tkfluent,tksvg,tkinter,fluent,modern,GUI,interface
@@ -30,17 +30,20 @@ Requires-Dist: easydict (>=1.13,<2.0)
30
30
  Requires-Dist: numpy
31
31
  Requires-Dist: pillow (>=10.2.0,<11.0.0)
32
32
  Requires-Dist: svgwrite (>=1.4.3,<2.0.0)
33
- Requires-Dist: tkdeft (==0.1.0)
33
+ Requires-Dist: tkdeft (==0.1.1)
34
34
  Requires-Dist: tkextrafont (>=0.6.3,<0.7.0)
35
35
  Requires-Dist: tksvg (>=0.7.4,<0.8.0)
36
36
  Project-URL: Documentation, https://tkfluent.netlify.app
37
37
  Description-Content-Type: text/markdown
38
38
 
39
- # tkfluent
39
+ <div align="center">
40
40
 
41
+ # tkfluent
41
42
  `tkinter`现代化组件库。设计来于`Fluent` `WinUI3` 设计
42
43
 
43
- ## 效果图
44
+ </div>
45
+
46
+
44
47
  ![Light.png](https://img.picui.cn/free/2025/06/22/6857e613bc150.png)
45
48
  ![Dark.png](https://img.picui.cn/free/2025/06/22/6857e613b7fc2.png)
46
49
 
@@ -1,8 +1,8 @@
1
- tkflu/__init__.py,sha256=2h8-989xFYDdt2BAxVn0_6jkfq96Hy-0MfZnjm4Bacc,1013
2
- tkflu/__main__.py,sha256=sfvzp4Izqa229Tn9JAqg6aL2BTveXmzjBt8E1lEr1Js,3346
1
+ tkflu/__init__.py,sha256=VuP9kfPYQLNi0qMFkQD2-9df0ltf59g8cRVL1CWKlR0,1050
2
+ tkflu/__main__.py,sha256=AohjpJd-T5sXIQWH9vdNv4WkP7G5417GXjcwHia2AYA,3787
3
3
  tkflu/badge.py,sha256=p9kY-JbsDraohNg2ZJMk3xA4PS9LEKxFpaSGX_NgHBw,5836
4
4
  tkflu/button.py,sha256=N6wvcNNsqVf_Rb0c1ZOw3JpXqJcR9QJAFvjl2aaQXPw,19263
5
- tkflu/bwm.py,sha256=6N4fLxnMIAFVXdNriBk-88-rmCVu0j245zAjYA6Bq-k,8233
5
+ tkflu/bwm.py,sha256=dAkBkoiZTzxshU2SwJCcFd8L9Ftf6JS7PSqC6c2yVBo,8578
6
6
  tkflu/checkbox.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
7
7
  tkflu/constants.py,sha256=VX3NcSzdOqelK3IRM-fK_RKBHV26d8AgJMuP-8hqCsA,488
8
8
  tkflu/customwindow.py,sha256=Fr4CF0vKwj36tYzgX9_5F7OwcD59z9LfOW20Ugm2Hxc,3761
@@ -11,49 +11,52 @@ tkflu/defs.py,sha256=pKVQUm-dK12QiU2MMFD7sxoiXfhEsezN_uAV6eE5Cbk,1144
11
11
  tkflu/demos/__init__.py,sha256=0IV8vUG2kAp90bbRXGj7Mte2ABXrZ_rzIyZxmB1fGLY,102
12
12
  tkflu/demos/acrylic1.py,sha256=-1SniTxrQeAYz6VSxHu7UsAmZeSIBaElgC2KYVVAghU,423
13
13
  tkflu/demos/demo1.py,sha256=xR4a1qOrzxHXhVFlluTjp9izo7sO_YFbS_BGZj1LbZs,112
14
- tkflu/demos/designer.py,sha256=EI40war1G_XuXBrf9qKK0FJVGfS_WSsCwVBTSWxveeY,961
14
+ tkflu/demos/designer.py,sha256=iiQqZxsYW0jBo60yigwLx9LV9RQQGEd81ewTHmVB-S4,960
15
15
  tkflu/demos/grad.py,sha256=neRGPq7VkGEzzUJymNdBi7EYI55wMes-OX3l-DQSonA,2195
16
16
  tkflu/demos/grad2.py,sha256=2ZixYVCaqWoWxTqYD4p6x9Sz7VUT3KCeQDNzOX0aAkI,442
17
17
  tkflu/demos/grad3.py,sha256=vJQ70C0amAJMbDvudOvHBqwb59SuXoWDCk7QovFuFts,441
18
+ tkflu/demos/screenshot.py,sha256=jYvNHHukzUKzzefyL4isQbd8PDbemHQFZpRWyUTF2iQ,66
19
+ tkflu/demos/scroll.py,sha256=x5nh5ytg6IQZKowm0SR1Mrm7Elf586hAKI76LH7qtEQ,528
18
20
  tkflu/demos/test.py,sha256=DMontyt61qq4ULVExSrHA9tbQlXHH_KSkQPv1EV8TEk,153
19
21
  tkflu/demos/tooltip.py,sha256=_tTIUuVo8x9YpdikPLxTvbB3wF1vb-JKppVDgzHXj2k,286
20
- tkflu/designs/__init__.py,sha256=hInKU8QJyosjgy59Oy8BekGPP7bTvQf4t_5jR_y6zx0,240
21
- tkflu/designs/animation.py,sha256=NMiSwMlQob95n8LoiyTi-ShmAqIllTWqr1DtGlkjoXU,1185
22
+ tkflu/designs/__init__.py,sha256=c7kL0jokEen-EEvW7PBXFfKcZHtC_rdcxM8nHGfVpv8,297
23
+ tkflu/designs/animation.py,sha256=yn9GCd7sTiHLGgJ6xOMCRqJnVT1XyEoE-Ots_XtU_Ag,1183
22
24
  tkflu/designs/badge.py,sha256=SVwDrQPltscB7YDvw5qhPdepKy1S-pcdD6OyYfonwzQ,1463
23
25
  tkflu/designs/button.py,sha256=yEKRrH5dcDQCaGGqsYRnKgaCPSSd8cU__31LOQf2JX0,12274
24
- tkflu/designs/design.py,sha256=RZNNzSl89BE7nFvOPThuzYKhONBZc76DMfYvHJ-pJWc,751
26
+ tkflu/designs/design.py,sha256=Gpe9SYgiasea_1wBA_ykd0qPzuVnUJMP9SVvrLdjU9Y,1357
25
27
  tkflu/designs/entry.py,sha256=iUilCpOl_zs_PbklIWhKWkkaZGQbt0bCprrZwhE3CEs,5060
26
- tkflu/designs/fonts/__init__.py,sha256=lKvu4DKjRaWNczHas_YJZNx_LVr9tt3W_kFkJJRju0Q,642
28
+ tkflu/designs/fonts/__init__.py,sha256=4kE0elI2pNYJksqvdJUXM6mM8Yk_2MQR90XGOa6rvs0,1285
29
+ tkflu/designs/fonts/segoe_fluent_icons.ttf,sha256=gvXcDgy59B761J5UI8dnaK4PyW4GKgiTtscpuGMDMBM,408752
27
30
  tkflu/designs/fonts/segoeui.ttf,sha256=dPKz0MIM9zgOsSGgn9fN_cHM3RKgDbg8rsD-tItNufc,975088
28
- tkflu/designs/frame.py,sha256=ypv5DilK1ZAsbGIzPIBPQFRrnfC7XtFYpvUFmUd6hdg,1167
31
+ tkflu/designs/frame.py,sha256=tpvgnnzbriLLQEAxuSamqo5meadDxqGf2dAaZh5Kks4,1167
29
32
  tkflu/designs/gradient.py,sha256=f5_FiWfYYfQ_obAj1n2qtNKWvxfC1wCOIONozNa27xs,2017
30
33
  tkflu/designs/label.py,sha256=0uNOWxlGvpbeAh5NLb_ZTyyDTznW8i32rLXkVBkC19M,218
31
- tkflu/designs/menubar.py,sha256=bi8OfDjJAhjRHPRfJmyVQcr7SZsScypdrCXEw8WxStA,215
34
+ tkflu/designs/menubar.py,sha256=I3deMwvBUT1iASLMg7eXcovTI6fc-zvYPcnGPn9r4UU,295
32
35
  tkflu/designs/primary_color.py,sha256=TKhGFX8jtFPQYmEV2f0Yq9jMuy0KG3ewTtsOBa1eds4,746
33
- tkflu/designs/scrollbar.py,sha256=DgnUnRs8lhE9X3VcvvOE5N2Z4SfyVAGs8cLe6g-XH94,1812
36
+ tkflu/designs/scrollbar.py,sha256=bKH4xwCvsqACocIOXjPZIGULDxRIiLaoGVdYkwknCW8,938
34
37
  tkflu/designs/slider.py,sha256=UDi4sw4K9fe-FGvhl4Hhr4zqZtfOdSiCjhdKFQmw6Q0,8088
35
- tkflu/designs/text.py,sha256=YMJR2eGE7lFIZPYrT7p8QBD3zRH4NaVWhrL1dOb6vJ4,5059
38
+ tkflu/designs/text.py,sha256=0g8gvWZYXWYb_HrqGZhureZicdErnDyKCqH8LCXLqrg,5069
36
39
  tkflu/designs/tooltip.py,sha256=OFUIO9-EMNjapF9zC5PuLW26HFGib-p800hNIxaWT5Q,442
37
40
  tkflu/designs/window.py,sha256=XHMvT0lVsJSeUApMf_bf9ipLSWT-BirkOiiUnVx-N48,625
38
41
  tkflu/entry.py,sha256=b4kblEEmZRqtuDM2E5_hhb_8MhTgujbwTNP7aICB6qM,10852
39
42
  tkflu/frame.py,sha256=oMy6fZcDfoYEZsGnKw23wlMAlojckavs7X6JbB8OQpw,11631
40
43
  tkflu/icons.py,sha256=Xzrc9WzexncYEPXqnVg3ywWv_7kLZLyYC5WtaRv30PQ,7129
41
44
  tkflu/image.py,sha256=w5CbUBsn5KG8EekLwMyXC5T0w6E_dlP8tlKjnut9194,58
42
- tkflu/label.py,sha256=pt_xmL5cdrVwOMDGdbGdQKCwiCnsGp3OpMAG57Ow8Mw,2824
45
+ tkflu/label.py,sha256=Y3kvljeXnvSq_rOPB-G_v87D3jS7nnF-kS41vRZS6jg,2981
43
46
  tkflu/listbox.py,sha256=gD_oNNWVZtm5qXQ8bVBNRqJL6CGiIYtvhxztM9huzew,9991
44
47
  tkflu/litenav.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
45
48
  tkflu/menu.py,sha256=j15DzZuWGsG_xMvsDh7XfO-aV6zlF9AhzHN2rdjwQLU,3263
46
- tkflu/menubar.py,sha256=MrqUzH5Znv92IkDGnZa4MEYZkH9ynfMzPNdx0JpQQwU,6145
47
- tkflu/popupmenu.py,sha256=dRwuFK7PKSYXiLhzrrzjKXTjtLfr7vh0KDvJIUjDetg,1592
48
- tkflu/popupwindow.py,sha256=OaQn727VpbX_TL9oUEOGudNL18eN1RVXC_owiWINBzg,2401
49
- tkflu/scrollbar.py,sha256=1hbu5n1mx4KyiF_M3sohpJJPux1zu5Jlw9V6LfQQs1Y,7293
50
- tkflu/slider.py,sha256=9SVtDxezB-iLDW7KVmIU5_EfGrAkUd_i8HSyALZkXeg,17925
51
- tkflu/text.py,sha256=OpGySgIpATrSR95cyhE-OTbtkBmQ3Eqqlw8DqVtioXI,12725
49
+ tkflu/menubar.py,sha256=Y5JD9h2RoLeNFlaRyAY47lxckrhb0VcI7w53SHdtCPw,6435
50
+ tkflu/popupmenu.py,sha256=cn0clfnJuibCbHebSZB2CaaAfks7IFJ5yQPgbi59CUs,1589
51
+ tkflu/popupwindow.py,sha256=nN-YMSddR9gT5TnC8fug_Pme7r_MCsFNN3k5BZvGhOo,2543
52
+ tkflu/scrollbar.py,sha256=SPYGsZ2DXoaMFh_kMqn9WFysYBaVRmi_zLBB8ZavOjU,14160
53
+ tkflu/slider.py,sha256=XOWsS8h0zaLI7qwgKgsFQe9bxZ1ACbLVm4tE6SGJetQ,18836
54
+ tkflu/text.py,sha256=1GKUJ3-e7V0O_pObbBbhW_kt4WsN82wXTqG1KlEGf-Q,12726
52
55
  tkflu/thememanager.py,sha256=N2aMX2CfMvXFYz0N8vi-9zHjxzvGumhDsKJJ0UgroAA,1914
53
- tkflu/togglebutton.py,sha256=WWx6iFuNzvv8_1ujXEN2MwoHgo3itZHnVpeQeO6gqqQ,20355
54
- tkflu/tooltip.py,sha256=BOXdKxiKZGp63JDSwC-2T2cCJkz2w_dmOos4oisiYr8,4986
56
+ tkflu/togglebutton.py,sha256=aCEyvTEsi_rbOPagBvzuZqxGnJ-NO-9f0LO7LOlxWEg,20799
57
+ tkflu/tooltip.py,sha256=6nW-1eVKcyyX9kdjzetv0n83PxNmr5N1Gd7tztaw8bE,4468
55
58
  tkflu/toplevel.py,sha256=dPrnhHTiciJtrlsh5oZNuv77Q-YCRK6OgQQ0mrhfTeo,1382
56
59
  tkflu/window.py,sha256=2LjgL2KZIAYA04fXWQvfiNMYj_PKzlpSuEZrR94qHAs,1483
57
- tkfluent-0.1.4.dist-info/METADATA,sha256=ZCuGH-4ORVRLUozMA_U8ZzEgcfX7YTCOL-70BtnjnyY,38223
58
- tkfluent-0.1.4.dist-info/WHEEL,sha256=b4K_helf-jlQoXBBETfwnf4B04YC67LOev0jo4fX5m8,88
59
- tkfluent-0.1.4.dist-info/RECORD,,
60
+ tkfluent-0.1.5.dist-info/METADATA,sha256=99lfDe4PLG4TeZudnBZqaNGxfgHki-t-sd4kze4o2UQ,38240
61
+ tkfluent-0.1.5.dist-info/WHEEL,sha256=b4K_helf-jlQoXBBETfwnf4B04YC67LOev0jo4fX5m8,88
62
+ tkfluent-0.1.5.dist-info/RECORD,,