可以在窗口小部件的默认状态中添加额外的状态吗?
例如,使用tk(ttk)中的样式有时候配置窗口小部件的选项非常有限。但是,使用命令ttk :: style map和(如果可能)定义额外状态,将很容易配置它。
低级状态管理引擎将状态映射到整数的位。支持状态的完整列表是(这是直接从C代码中提取的信息;这完全是基本事实):
- active - 鼠标光标位于小部件或元素上方
- 禁用 - 窗口小部件已禁用
- 焦点 - 小工具有键盘焦点
- 按下 - 按下或“武装”
- 选中 - “开”,“真”,“当前”等
- 后台 - 顶级窗口失去焦点(Mac,Win“无效”)
- alternate - 特定于Widget的备用显示样式
- 无效 - 价值不佳
- readonly - 禁用编辑/修改
- 悬停 - 鼠标光标位于小部件上方
- reserved1 - 保留用于将来的扩展
- reserved2 - 保留用于将来的扩展
- reserved3 - 保留用于将来的扩展
- user3 - 用户可定义的状态
- user2 - 用户可定义的状态
- user1 - 用户可定义的状态
仔细查看该列表,我猜测特别是user1,user2和user3可以用于您的额外状态。定义更多内容需要对C代码进行自定义更改,但是您有三个可以继续进行更改。我猜一下,也可以使用reserved1 ... reserved3。我不禁想到UI必须有多复杂才能需要许多不同的独立状态描述符,但它们在那里我真的怀疑Ttk会很快使用它们。 (如果你正在大量使用这类东西,请向Tk的开发人员下线,让他们了解它;它有助于说服人们不“优化”这些东西,特别是好的用途可能导致成为正式命名的国家。)
请不要重新发明任何现有州旗的含义。没有它,一切都令人困惑!