可以在tk中为小部件添加新状态吗?

问题描述 投票:1回答:1

可以在窗口小部件的默认状态中添加额外的状态吗?

例如,使用tk(ttk)中的样式有时候配置窗口小部件的选项非常有限。但是,使用命令ttk :: style map和(如果可能)定义额外状态,将很容易配置它。

tcl tk
1个回答
1
投票

低级状态管理引擎将状态映射到整数的位。支持状态的完整列表是(这是直接从C代码中提取的信息;这完全是基本事实):

  • active - 鼠标光标位于小部件或元素上方
  • 禁用 - 窗口小部件已禁用
  • 焦点 - 小工具有键盘焦点
  • 按下 - 按下或“武装”
  • 选中 - “开”,“真”,“当前”等
  • 后台 - 顶级窗口失去焦点(Mac,Win“无效”)
  • alternate - 特定于Widget的备用显示样式
  • 无效 - 价值不佳
  • readonly - 禁用编辑/修改
  • 悬停 - 鼠标光标位于小部件上方
  • reserved1 - 保留用于将来的扩展
  • reserved2 - 保留用于将来的扩展
  • reserved3 - 保留用于将来的扩展
  • user3 - 用户可定义的状态
  • user2 - 用户可定义的状态
  • user1 - 用户可定义的状态

仔细查看该列表,我猜测特别是user1,user2和user3可以用于您的额外状态。定义更多内容需要对C代码进行自定义更改,但是您有三个可以继续进行更改。我猜一下,也可以使用reserved1 ... reserved3。我不禁想到UI必须有多复杂才能需要许多不同的独立状态描述符,但它们在那里我真的怀疑Ttk会很快使用它们。 (如果你正在大量使用这类东西,请向Tk的开发人员下线,让他们了解它;它有助于说服人们不“优化”这些东西,特别是好的用途可能导致成为正式命名的国家。)

请不要重新发明任何现有州旗的含义。没有它,一切都令人困惑!

© www.soinside.com 2019 - 2024. All rights reserved.