Skip to main content

tinui时间与日期滚动选择器

Project description

TinUIPicker

TinUI提供滚动选择器功能控件,相比于原版picker,TinUIPicker套件加入了日期选择和时间选择的功能。


TinUIDatePicker

[!important]

TinUIDatePicker原始框架代码由Gemini3根据TinUI的picker源码修改而来,之后我才进行了交互优化和样式优化,AI代码部分未完全审查。

TinUIDatePicker(
    tinui, pos, font=("微软雅黑", 10), command=None, 
    year_range=(2000, 2030), now=datetime.today(), **kwargs
)

# 默认样式表
self.cfg = {
    "fg": kwargs.get("fg", "#1b1b1b"),
    "bg": kwargs.get("bg", "#fbfbfb"),
    "outline": kwargs.get("outline", "#ececec"),
    "activefg": kwargs.get("activefg", "#1b1b1b"),
    "activebg": kwargs.get("activebg", "#f6f6f6"),
    "onbg": kwargs.get("onbg", "#3748d9"),
    "onfg": kwargs.get("onfg", "#eaecfb"),
    "buttonfg": kwargs.get("buttonfg", "#1a1a1a"),
    "buttonbg": kwargs.get("buttonbg", "#f9f9f9"),
    "buttonactivefg": kwargs.get("buttonactivefg", "#1a1a1a"),
    "buttonactivebg": kwargs.get("buttonactivebg", "#f3f3f3"),
    "buttononfg": kwargs.get("buttononfg", "#5d5d5d"),
    "buttononbg": kwargs.get("buttononbg", "#f5f5f5"),
}

command接收一个形如2026-01-30的字符串参数。

set_date(year:int=None, month:int=None, day:int=None)

设置年-月-日,若为None则不变。


TinUITimePicker

TinUITimePicker(
    tinui, pos, font=("微软雅黑", 10),
    is_24h=True, show_sec=True,
    now = datetime.now(),
    command=None, anchor='nw', **kwargs
)

默认样式同TinUIDatePicker

  • is_24h-是否是24小时制,如果,则开头显示AMPM选项
  • show_sec-是否可选

command接收一个形如16:00:09或者PM 04:00:09的字符串参数。若show_secFalse,则不回传

set_time(hour:int=None, minute:int=None, second:int=None)

设置时-分-秒,若为None则不变。


样式表

TinUIPicker提供了pickerlightpickerdark两种配色样式表,均来自于TinUI明暗配色。


面板布局

通过TinUIDatePicker.uid获取TinUIDatePicker的控件标识符。时间选择器类似。

面板布局行为与picker一致。


使用示例

from datetime import datetime
from tkinter import Tk

from tinui import BasicTinUI, ExpandPanel, HorizonPanel
from tinuipicker.datepicker import TinUIDatePicker
from tinuipicker.timepicker import TinUITimePicker
from tinuipicker import pickerlight, pickerdark

root = Tk()
root.geometry('400x400')

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

tdp = TinUIDatePicker(ui, (10,10), font=("Segoe UI", 12), now=datetime(2026, 2, 19), command=print, anchor='center', **pickerlight)
tdp.set_date(2016, 10)

ttp = TinUITimePicker(ui, (10,10), font=("Segoe UI", 12), is_24h=False, show_sec=False, now=datetime(1,1,1,6,23,45), command=print, anchor='center', **pickerdark)
ttp.set_time(16,0,19)

rp = ExpandPanel(ui)
hp = HorizonPanel(ui)
rp.set_child(hp)

ep = ExpandPanel(ui, bg='#f3f3f3')
hp.add_child(ep, weight=1)
ep.set_child(tdp.uid)

ep2 = ExpandPanel(ui, bg='#202020')
hp.add_child(ep2, weight=1)
ep2.set_child(ttp.uid)

def update(e):
    rp.update_layout(5,5,e.width-5,e.height-5)
ui.bind('<Configure>',update)

root.mainloop()

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

tinuipicker-1.6.0.tar.gz (14.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

tinuipicker-1.6.0-py3-none-any.whl (16.4 kB view details)

Uploaded Python 3

File details

Details for the file tinuipicker-1.6.0.tar.gz.

File metadata

  • Download URL: tinuipicker-1.6.0.tar.gz
  • Upload date:
  • Size: 14.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.9

File hashes

Hashes for tinuipicker-1.6.0.tar.gz
Algorithm Hash digest
SHA256 da6f5d646ea579cf89f831c7f655050758b2e2844d20275657b19270181b6906
MD5 72b97f97a335e301ac02680343c75af5
BLAKE2b-256 95fe38910f3922cafe16fb0e93f59520ba52f4bb9f421b178cc878f78f9e67d5

See more details on using hashes here.

File details

Details for the file tinuipicker-1.6.0-py3-none-any.whl.

File metadata

  • Download URL: tinuipicker-1.6.0-py3-none-any.whl
  • Upload date:
  • Size: 16.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.9

File hashes

Hashes for tinuipicker-1.6.0-py3-none-any.whl
Algorithm Hash digest
SHA256 bc4802296fb6305e4397cbec526ce5d9c50f2c27685666c6748ce91af7d785a4
MD5 c047b946ed0f3b5a82b8018076d92088
BLAKE2b-256 895e0cbcd09800996245f426ca34ab0fa4556065f9cf249b6dea83ab659e9d18

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page