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小时制,如果
否,则开头显示AM和PM选项 - show_sec-是否可选
秒
command接收一个形如16:00:09或者PM 04:00:09的字符串参数。若show_sec为False,则不回传秒。
set_time(hour:int=None, minute:int=None, second:int=None)
设置时-分-秒,若为None则不变。
样式表
TinUIPicker提供了pickerlight和pickerdark两种配色样式表,均来自于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
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file tinuipicker-1.5.0.tar.gz.
File metadata
- Download URL: tinuipicker-1.5.0.tar.gz
- Upload date:
- Size: 14.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d2d2c380f477bd21c7c949f44975f56a8cf333d4c74e7f7b47a5c50dda3b2822
|
|
| MD5 |
5268defa09ed40badf077b212e3fb5d2
|
|
| BLAKE2b-256 |
8acf741820aa23ad905d1148b094baaf7a3fa3bade4d1bc89d70d5210640e3c0
|
File details
Details for the file tinuipicker-1.5.0-py3-none-any.whl.
File metadata
- Download URL: tinuipicker-1.5.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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
bbc3c4edc74b040dc2273a9141945077493d68455394ff68f30637c3a73aff4c
|
|
| MD5 |
f5f0e99b7145dc638f9d0924eb044ba8
|
|
| BLAKE2b-256 |
55d8af93928f58c361064969f5ded698bf7ea56365130de046139c3b9f3e1df5
|