Skip to main content

TinUISlider

TinUI的高级滑动条控件。

[!NOTE]

tinuislider提供sliderlight和sliderdark两种样式配色。


CenterSlider

tinuislider.centerslider.CenterSlider

CenterSlider(
    canvas: BasicTinUI,
    pos: tuple,
    width=200,
    fg="#4554dc",
    activefg="#4554dc",
    bg="#868686",
    buttonbg="#ffffff",
    buttonoutline="#cccccc",
    data=(1, 2, 3, 4, 5),
    start=None, # 默认为中间索引
    direction="x",
    anchor="nw",
    command=None,
)

参数与TinUI原生scalebar一致。

注意,start是索引,不是值。

[!tip]

通过CenterSlider.uid获取控件标识符,用于TinUI面板布局。其对面板布局的响应与原生scalebar一致。

select(num)

选中某一项索引。

disable(sign='#C8C8C8')

禁用,sign为禁用时标识色。

active_state()

激活控件。

get()

获取当前选中值。

set(value)

选中某一项值,需要在data中。

示例

from tkinter import Tk
from tinui import ExpandPanel, VerticalPanel
def on_resize(event):
    rp.update_layout(10,10,event.width-10,event.height-10)
r=Tk()

ui=BasicTinUI(r)
ui.pack(fill='both',expand=True)

slider = CenterSlider(
    canvas=ui,
    pos=(0, 100),
    width=200,
    data=range(-10,11),
    start=3, # start是索引,不是值,所以这里是选中数据中的第4项
    anchor="center",
    command=lambda v: print(f"Selected: {v}")
)

# 获取当前值
val = slider.get()
print(f"Current value: {val}")
slider.set(5)  # 设置选中值为 5
print(f"Value after set: {slider.get()}")

rp = ExpandPanel(ui)
vp = VerticalPanel(ui)
rp.set_child(vp)

ep1 = ExpandPanel(ui)
vp.add_child(ep1, weight=1)
ep1.set_child(slider.uid)

ui.bind("<Configure>", on_resize)

r.mainloop()

RangeSlider

tinuislider.rangeslider.RangSlider

RangeSlider(
    canvas: BasicTinUI,
    pos: tuple,
    width=200,
    fg="#4554dc",
    activefg="#4554dc",
    bg="#868686",
    buttonbg="#ffffff",
    buttonoutline="#cccccc",
    data=(1, 2, 3, 4, 5),
    start_left=None,
    start_right=None,
    direction="x",
    anchor="nw",
    command=None,
)
  • start_left::小段索引
  • start_right::大端索引

disable(sign='#C8C8C8')

禁用。

active_state()

激活控件。

get()

获取当前大小两端选值。

set(left=None, right=None)

设置大小两端选值,需要在data中。可单独设置。

示例

from tkinter import Tk
from tinui import ExpandPanel, VerticalPanel
def on_resize(event):
    rp.update_layout(10,10,event.width-10,event.height-10)
def on_change(val):
    print("Range:", val)

root = Tk()
root.geometry("400x200")

ui = BasicTinUI(root)
ui.pack(fill="both", expand=True)

slider = RangeSlider(
    canvas=ui,
    pos=(100, 100),
    width=250,
    data=list(range(0, 101, 10)),
    start_left=2,
    start_right=7,
    anchor="center",
    direction='y',
    command=on_change,
)

rp = ExpandPanel(ui)
vp = VerticalPanel(ui)
rp.set_child(vp)

ep1 = ExpandPanel(ui)
vp.add_child(ep1, weight=1)
ep1.set_child(slider.uid)

ui.bind("<Configure>", on_resize)

root.mainloop()

Metadata

Release files for tinuislider 1.2.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for tinuislider 1.2.0
File Size Uploaded
tinuislider-1.2.0.tar.gz 12.4 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for tinuislider 1.2.0
File Interpreter ABI Platform
tinuislider-1.2.0-py3-none-any.whl Python 3 none any Details

Total release size: 26.1 kB

Release files / tinuislider-1.2.0.tar.gz

Download URL tinuislider-1.2.0.tar.gz
Size 12.4 kB
Tags Source
SHA-256 checksum
How to use checksums
d5a419d185f6d6cf95b32ef2a9088329139daa022c306052f25acdb6b9a31892
BLAKE2b-256 checksum
How to use checksums
fad1c0503914d5fec345db7764898d4eacb8a10b99e1762c15a99e0be93ffc8a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.13.9

Release files / tinuislider-1.2.0-py3-none-any.whl

Download URL tinuislider-1.2.0-py3-none-any.whl
Size 13.7 kB
Tags Python 3
SHA-256 checksum
How to use checksums
f8b0fa3b722176ee8b8f399bc2a3706c69455c0b4794dca01206b665708df660
BLAKE2b-256 checksum
How to use checksums
5db878112bbbb63a3c5864aff14e53cc398da74e4ca2fac48ea1675531335be7
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.13.9

Release history Release notifications | RSS feed

This release

1.2.0 This release

2 release files

1.1.0

2 release files

1.0.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page