Skip to main content

tinui高级表格

Project description

TinUISheet

TinUI的高级表格控件。

[!warning]

TinUISheet已经可用于TinUI,但是当前仍处于早期开发状态。


使用

TinUISheet类

TinUISheet(
    ui:BasicTinUI, pos:tuple, width=300, height=300, minwidth=100, maxwidth=300,
    font=('微软雅黑', 12),
    fg='black', bg='white', itemfg='#1a1a1a', itembg='#f9f9f9', headbg='#f0f0f0',
    itemactivefg='#191919', itemactivebg='#f0f0f0',
    itemonfg='#191919', itemonbg='#e0e0e0',
    headfont=('微软雅黑', 14),
    anchor='nw'
)
  • fg-文本颜色
  • bg-表格背景色
  • itemfg-数据文本颜色
  • itembg-数据背景色
  • headbg-表栏背景色
  • itemactivefg-响应鼠标整行文本颜色
  • itemactivebg-响应鼠标整行背景色
  • itemonfg-选中时文本颜色
  • itemonbg-选中时背景颜色

[!note]

标准配色随时可能变动,建议自行指定颜色。

tinuisheet提供sheetlightsheetdark两种样式配色

[!tip]

通过TinUISheet.uid获取控件标识符,用于TinUI面板布局。

TinSheet支持普通面板布局和拓展拉伸布局。当置于ExpandPanel中时,表格外框会平铺面板区域,表格本体的原点仍为表格框左上角。

set_heads(heads)

设置整个表头文本。

对于heads中的一项,如果为dict,则有如下结构:

{
    'title': 'TITLE',
    'width': WIDTH-INT // 宽度
}

set_head(index:int, head)

设置某个表头文本。

head可以为str,也可以同上为dict

append_content(content)

加入一行数据。

set_contents(index:int, contents:list)

设置一行数据(从表头栏下一行开始记为0)。

set_content(index:int, index2:int, content:str)

设置indexindex2列的数据。

get_selected(specific=False)

获取当前选中行中的所有文本列表,无则返回None

specificTrue时,返回选中块的文本。

delete_row(index:int)

删除某行。

delete_col(index:int)

删除某列。


示例

from tkinter import Tk
from tinui import BasicTinUI, ExpandPanel, HorizonPanel

def test(_):
    tus.delete_col(0)
    tus.delete_row(0)
    tus.set_head(0, {'title':'α', 'width':200})
    tus.set_head(1, 'bbb')
    for _ in range(30):
        tus.append_content(['三','444','555',' ',' '])
    pass

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

ui = BasicTinUI(root)
ui.pack(expand=True, fill='both')
tus = TinUISheet(ui, (15,15), **sheetlight)

tus.set_heads(['a',{'title':'b','width':200},'c',' ',' ',' '])
tus.append_content(['一','222','333',' ',' ',' '])
tus.append_content(['四','555','666',' ',' ',' '])
tus.append_content(['七','888','999',' ',' ',' '])
tus.append_content(['万','000','111',' ',' ',' '])
tus.append_content(['三','444','555',' ',' ',' '])
tus.set_contents(1, ['Ⅳ','⑤','陆',' ',' ',' '])
tus.set_content(2, 2, '玖')
ui.after(2000, lambda: print(tus.get_selected(True)))

rp = ExpandPanel(ui)
hp = HorizonPanel(ui, spacing=10)
rp.set_child(hp)

ep = ExpandPanel(ui)
hp.add_child(ep, weight=1)
ep.set_child(tus.uid)

hp.add_child(ui.add_button((10,350), text='test', command=test)[-1], 100)

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

tinuisheet-0.3.0.tar.gz (10.4 kB view details)

Uploaded Source

Built Distribution

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

tinuisheet-0.3.0-py3-none-any.whl (10.8 kB view details)

Uploaded Python 3

File details

Details for the file tinuisheet-0.3.0.tar.gz.

File metadata

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

File hashes

Hashes for tinuisheet-0.3.0.tar.gz
Algorithm Hash digest
SHA256 7762495577c772768c81cc4410f6429f25d073d84a9f5425c02521bbf635e233
MD5 8854fdfb163f049f577f1d28ccc2495c
BLAKE2b-256 076856973b7095339948c723247a1e228b1a6d1d28f8b9dc7c8f9f436a1e388f

See more details on using hashes here.

File details

Details for the file tinuisheet-0.3.0-py3-none-any.whl.

File metadata

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

File hashes

Hashes for tinuisheet-0.3.0-py3-none-any.whl
Algorithm Hash digest
SHA256 104c324ba2cad4820207ed092b69f0dd4c0df68bb8593e47b6a9122bbcb148dd
MD5 c3a30060070b3a15199c20dfe226fb63
BLAKE2b-256 45e850e8bada1e775a26d95eb2192b0e9411551ee713284808816c340a4f01e2

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