tkfluent 0.1.3__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/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,22 +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
- # 设置初始透明度为0
44
-
45
-
46
- # 渐显动画
47
- def fade_in(step=0):
48
- FRAMES_COUNT = 20
49
- alpha = step / FRAMES_COUNT # 按帧数变化,从0到1
50
- self.wm_attributes("-alpha", alpha)
51
- if step < FRAMES_COUNT:
52
- # 每执行一次,增加一次透明度,间隔由帧数决定
53
- self.after(int(round(self._show_time/FRAMES_COUNT)), lambda: fade_in(step + 1))
54
-
55
- fade_in() # 启动动画
56
40
 
57
41
  self.id = self.after(self._delay, check)
58
42
  self._enter = True
@@ -108,6 +92,9 @@ class FluToolTip2(FluPopupWindow):
108
92
 
109
93
  self.theme(mode)
110
94
 
95
+ def popup2(self, x, y):
96
+ self.geometry(f"+{x}+{y}")
97
+
111
98
  def show(self, event: Event):
112
99
  self.popup(
113
100
  round(event.x_root - self.winfo_width() / 2),
@@ -119,7 +106,7 @@ class FluToolTip2(FluPopupWindow):
119
106
  self.withdraw()
120
107
 
121
108
  def move(self, event):
122
- self.popup(
109
+ self.popup2(
123
110
  round(event.x_root - self.winfo_width() / 2),
124
111
  round(event.y_root + 10)
125
112
  )
@@ -131,8 +118,7 @@ class FluToolTip2(FluPopupWindow):
131
118
  background=n["back_color"]
132
119
  )
133
120
 
134
- if sys.platform == "win32": # Only Windows supports the transparentcolor attribute
135
- self.wm_attributes("-transparentcolor", n["back_color"])
121
+ self.wm_attributes("-transparentcolor", n["back_color"])
136
122
  #print(n["back_color"])
137
123
  if hasattr(self, "_frame"):
138
124
  self._frame.dconfigure(
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: tkfluent
3
- Version: 0.1.3
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.0.9)
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=QCVBJeyYGwtiMvS8wArcJrW8KL169w7wwXEBkjloGeM,3303
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,48 +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/slider.py,sha256=1JsWvE8tQ6oI3vfS7iDMlES17n6ri8q9D2ym456i5CY,7800
34
- tkflu/designs/text.py,sha256=YMJR2eGE7lFIZPYrT7p8QBD3zRH4NaVWhrL1dOb6vJ4,5059
36
+ tkflu/designs/scrollbar.py,sha256=bKH4xwCvsqACocIOXjPZIGULDxRIiLaoGVdYkwknCW8,938
37
+ tkflu/designs/slider.py,sha256=UDi4sw4K9fe-FGvhl4Hhr4zqZtfOdSiCjhdKFQmw6Q0,8088
38
+ tkflu/designs/text.py,sha256=0g8gvWZYXWYb_HrqGZhureZicdErnDyKCqH8LCXLqrg,5069
35
39
  tkflu/designs/tooltip.py,sha256=OFUIO9-EMNjapF9zC5PuLW26HFGib-p800hNIxaWT5Q,442
36
40
  tkflu/designs/window.py,sha256=XHMvT0lVsJSeUApMf_bf9ipLSWT-BirkOiiUnVx-N48,625
37
41
  tkflu/entry.py,sha256=b4kblEEmZRqtuDM2E5_hhb_8MhTgujbwTNP7aICB6qM,10852
38
42
  tkflu/frame.py,sha256=oMy6fZcDfoYEZsGnKw23wlMAlojckavs7X6JbB8OQpw,11631
39
43
  tkflu/icons.py,sha256=Xzrc9WzexncYEPXqnVg3ywWv_7kLZLyYC5WtaRv30PQ,7129
40
44
  tkflu/image.py,sha256=w5CbUBsn5KG8EekLwMyXC5T0w6E_dlP8tlKjnut9194,58
41
- tkflu/label.py,sha256=pt_xmL5cdrVwOMDGdbGdQKCwiCnsGp3OpMAG57Ow8Mw,2824
45
+ tkflu/label.py,sha256=Y3kvljeXnvSq_rOPB-G_v87D3jS7nnF-kS41vRZS6jg,2981
42
46
  tkflu/listbox.py,sha256=gD_oNNWVZtm5qXQ8bVBNRqJL6CGiIYtvhxztM9huzew,9991
43
47
  tkflu/litenav.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
44
48
  tkflu/menu.py,sha256=j15DzZuWGsG_xMvsDh7XfO-aV6zlF9AhzHN2rdjwQLU,3263
45
- tkflu/menubar.py,sha256=MrqUzH5Znv92IkDGnZa4MEYZkH9ynfMzPNdx0JpQQwU,6145
46
- tkflu/popupmenu.py,sha256=dRwuFK7PKSYXiLhzrrzjKXTjtLfr7vh0KDvJIUjDetg,1592
47
- tkflu/popupwindow.py,sha256=OVDjW3g5oKeFy82SLz7XiNC2hy8RKeQGW2l0yBKezIs,1010
48
- tkflu/scrollbar.py,sha256=1hbu5n1mx4KyiF_M3sohpJJPux1zu5Jlw9V6LfQQs1Y,7293
49
- tkflu/slider.py,sha256=B29fNA0rGSWEdetFfwLEdNhYyprHEm9FCqU3Vpp08Sw,16114
50
- tkflu/text.py,sha256=OpGySgIpATrSR95cyhE-OTbtkBmQ3Eqqlw8DqVtioXI,12725
51
- tkflu/thememanager.py,sha256=2Vrkg0OEeTpwz0WU89IQCuN6VfhoUjI_N8vwth-W20A,1938
52
- tkflu/togglebutton.py,sha256=WWx6iFuNzvv8_1ujXEN2MwoHgo3itZHnVpeQeO6gqqQ,20355
53
- tkflu/tooltip.py,sha256=JDSqa2Q4kJmlnY5fu9kR0dlcexwvQoscomiaxw7BGQg,5163
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
55
+ tkflu/thememanager.py,sha256=N2aMX2CfMvXFYz0N8vi-9zHjxzvGumhDsKJJ0UgroAA,1914
56
+ tkflu/togglebutton.py,sha256=aCEyvTEsi_rbOPagBvzuZqxGnJ-NO-9f0LO7LOlxWEg,20799
57
+ tkflu/tooltip.py,sha256=6nW-1eVKcyyX9kdjzetv0n83PxNmr5N1Gd7tztaw8bE,4468
54
58
  tkflu/toplevel.py,sha256=dPrnhHTiciJtrlsh5oZNuv77Q-YCRK6OgQQ0mrhfTeo,1382
55
59
  tkflu/window.py,sha256=2LjgL2KZIAYA04fXWQvfiNMYj_PKzlpSuEZrR94qHAs,1483
56
- tkfluent-0.1.3.dist-info/METADATA,sha256=GomtMRLj71TsxHwvOo4oE8rHH7WGBHGk0WlPr2QOZ_M,38223
57
- tkfluent-0.1.3.dist-info/WHEEL,sha256=b4K_helf-jlQoXBBETfwnf4B04YC67LOev0jo4fX5m8,88
58
- tkfluent-0.1.3.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,,