# Defaults and Preferences
在PAGE开发的早期,我考虑完全放弃从Virtual Tcl派生的首选项,这主要是因为许多首选项与对PAGE没有意义的功能有关。但是,我真的不喜欢PAGE中的灰色背景,而是想将其更改为我最喜欢的背景颜色-小麦。另外,我认为应该与用户共享功能。做出这个决定之后,我发现这是考虑允许用户使用一种颜色方案来运行PAGE的一个小步骤,同时生成具有不同颜色方案的Python GUI。关于字体也发生了类似的想法。之所以开始,是因为默认字体对于我的老年人来说太小了。因此,一件事导致另一件事,这成为在哪里停止的问题。在4.0版中,我实现了由前景色和背景色以及PAGE和生成的GUI的单独字体组成的配色方案。我还试图提供合理的突出显示颜色。我尝试在生成的代码中提供有用的信息,以便您可以看到我要执行的操作,从而可以自定义结果。
操纵颜色的另一种说法是,不利用颜色,就不是真正利用Tk。 我不太了解ttk样式,我想问一下,如果您发现更好的方法甚至做某事无法做到的事情,请让我知道,我会很乐意使用它;其次,讨厌尝试强加我的风格 口味,我再次欢迎发表评论。 还可以说,我已经使用浅色(尤其是小麦色)完成了大部分开发和测试工作。 这意味着可以期望在浅色下效果更好。 我还测试并尝试使事物在蓝色背景和白色前景下工作。
让我在这里澄清默认和首选项的含义。 默认值是内置属性值,除非PAGE用户专门为各个GUI小部件设置它们,否则它们将用于颜色,背景和前景以及字体选择和大小。 默认值还包括PAGE用于显示其界面窗口的颜色和字体。 首选项是用户指定的PAGE所使用的某些属性的替代。 可以使用属性编辑器更改各个窗口小部件属性。
可以从多个来源派生默认值。 首先,如果没有采取其他措施,则以Tk默认值较小的灰色世界为准。 这些默认值可能会被.pagerc文件中的值所覆盖,该文件是从PAGE的先前执行中保存的,在PAGE中,用户对默认值进行了首选项的保存。 那些保存的首选项始终可以重新指定和保存。 当PAGE用户指定或打开一个现有的生成的GUI“ .tcl”文件时,覆盖GUI默认值的第三个来源就会发挥作用。 在这种情况下,用于进一步GUI开发的默认值与保存文件时生效的默认值匹配。 也就是说,当您打开现有的GUI“ .tcl”以进行进一步开发时,PAGE将使用在创建GUI的较早时间生效的GUI默认设置,而PAGE会忽略当前的默认设置。 第三种方式是4.0版的增强功能。
请注意,.pagrc是可编辑的文本文件。 尽管我有时对其进行了编辑,但这不是必需的,并且可能会引起问题-这就是“首选项”窗口的用途。
C混乱至少来自两个方面。 首先,实际上有两组首选项,(1)PAGE程序的首选项,以及(2)用于生成的GUI的首选项。 另一个来源是在Tk环境中有多种指定首选项的方法。 对于ttk小部件,必须使用主题和样式来操纵颜色和字体,但不幸的是,许多方面尚未记录,弥补了ttk代码实现或设计中的一些严重缺陷。 通过实验和谷歌搜索,我发现了一些可行的方法。 再次,我从Guilherme Polo获得了巨大的帮助,以解决我在使用ttk样式时遇到的重要问题。 甚至现在,与我的实现相关联的PAGE中仍有一些令人不安的工件。 同样,欢迎提出建议。
毫无疑问,如果用户坚持使用默认值,事情会变得更容易。 但是随后,人们陷入了一个沉闷的灰色世界,在Linux和Microsoft PC上只有很小的字体。 (我认为Tk默认灰色为#d9d9d9,也称为X11颜色gray9。)
让我们从简单的偏好开始。 PAGE具有几个简单的首选项,例如是不使用自动生成的别名还是相对放置(请参见[相对位置](use.md))以及放置小部件的网格的粒度。 这些很简单,甚至可以作为用户可设置的选项删除。 当将新功能添加到PAGE时,它们就包括在内,但是现在我几乎总是坚持使用新功能,并且很少测试旧版功能是否仍能正常工作。 因此,我建议您坚持使用初始设置。 最近,一个用户向我指出了相对放置问题,因此我回过头来对绝对放置进行了一些额外的测试和调试,因此我对绝对放置更有信心。 (如果取消选中“使用相对位置生成Python”项,则将获得绝对位置。)同时,我生成了一个hack,可减轻标签框架的相对位置问题。
处理[默认来源](use.md)的选项是用户实际上可能想要或可能不想要的选项,因此它实际上属于首选项。
在用户要求PAGE测试标识符是否为合法的Python标识符之后,我实施了一个标识符是否为合法的Python 2标识符的测试(请参阅[命名约定](use.md))。 您可以在“首选项”窗口中选择此测试。 PAGE检查命令条目中的命令属性以及validatecommand和invalidcommand选项。 如果条目的语法不正确,则代码生成将停止,Python控制台将关闭,并选择有问题的窗口小部件。
在GUI的情况下,首选项更加困难,因为一个人选择的是默认值,当在与开发系统不同的操作系统上执行该应用程序时,该默认值可能对生成的应用程序的用户不可用。 两种系统上可能没有相同的字体和颜色。 您可能会接受一些有关PAGE的默认设置,但实际上是希望控制要在应用程序中使用的颜色和字体等内容。 我正在Linux上进行开发工作,并且面向该操作系统。
最后,我有一个问题,在知道任何首选项之前,应设置哪些默认值。 尽管我不喜欢它们,但我已将PAGE设置为使用Tk默认颜色和字体。 也就是说,PAGE用作ttk小部件的默认背景-#d9d9d9。 因此,请选择“文件”->“首选项”,并使该程序表现最佳。
请注意,当人们在“首选项”中进行更改时,只要选择右上角的复选标记,它们就会提交。 同时,它们被写入.pagerc文件中,以便在用户下次调用PAGE时被利用。 如果用户要放弃在“首选”窗口中执行的操作,则选择支票旁边的样式化“ x”,整个窗口将消失并且不保存任何内容。 在PAGE中,从首选项派生的几个变量是在程序启动时设置的。 如果您想更改首选项,我绝对建议您打开PAGE,进行更改,通过选择对勾将其保存,然后退出PAGE。 重新启动时,它们应该生效。
一个陷阱仍然存在。 如果您在指定了一种配色方案的情况下启动了一个项目,并将该项目保存在GUI“ .tcl”文件中,然后更改了颜色或字体首选项,然后重新加载了tcl文件,您会发现原始颜色和字体首选项仍在 影响; 它们保存在“ .tcl”中。 我强调这一点是因为我被它抓住了。
还有一点是,如果在安装过程中没有删除“ .pagerc”文件,则升级到4.0版时可能会遇到问题。
从版本4.17开始,存在一个首选项,允许用户在空间中指定压痕宽度。 就像指定标签宽度一样,但是PAGE不使用标签来存储Python文件。 同样,Python模块将使用空格保存。 缩进宽度的默认值为四个空格。 与其他首选项一样,该首选项存储在“ .pagerc”文件中。
在版本4.21中,实现了气球帮助(工具提示),并且默认字体很小,因此添加了用于指定工具提示字体的首选项。
在版本4.22中,添加了一个首选项,用于指定要在Python控制台中执行的Python命令。 基本上,它允许在选择运行按钮时调用的解释器在Python 2或Python 3之间进行选择。
在版本4.23中,添加了一个首选项,用于指定要保留为整数的后台文件级别的数量。 空白或零表示将不保留任何备份。
同样,在会话期间更改首选项可能会导致意外结果。 调用PAGE,更改首选项,然后退出。 在首次保存项目后进一步更改首选项将在首次保存时有效地保留GUI首选项,直到涉及该项目的其他会话为止。
- 介绍
- 更新记录
- X Concepts
- Visual Tcl
- 使用PAGE设计范例
- 项目目录配置
- Python 2 or Python 3
- Python编码和UTF-8
- 使用PAGE的简短说明
- PAGE的状态
- 安装
- PAGE界面
- 主菜单
- 子菜单
- 组件工具栏
- 属性编辑器
- 组件树
- 绑定操作窗口
- 菜单编辑器
- 首选项窗口
- Python控制台
- 回调窗口
- 应用窗口
- 颜色对话框
- 颜色
- 双显示器
- 默认值和首选项
- Preferences Windows
- Color Preferences
- Font Preferences
- 模块结构
- 风格和主题
- 使用PAGE
- 命名约定
- 概述
- Toplevel Geometry
- 别名
- 气球帮助-工具提示
- 选择和修改组件
- 修改组件位置和尺寸
- 锁定组件
- 填充容器
- 剪切,复制和粘贴
- Stash and Apply - Propagate Widget Options
- 菜单组件
- 回调函数
- 将事件链接到回调函数
- 创建绑定
- 为滚动组件创建绑定
- 定义回调函数
- 查看回调
- 指定字体
- Toplevel Widget
- 相对位置
- Tkinter变量类
- Ttk Widgets
- Scrolled Widgets
- Ttk Notebook and PNotebook
- Ttk Panedwindow
- Ttk Treeview
- Entry
- Ttk Entry
- Ttk Combobox
- Radiobuttons
- 文本和变量的奇异性
- Label
- Listbox
- Spinbox
- Scale and TScale
- TSeparator
- Sizegrip
- Custom Widgets
- Canvas
- 生成,检查和运行Python GUI
- 创建和保存代码模块
- 检查生成的Python模块
- 执行Python模块
- 将生成的Python模块加载到IDE中
- 具有多个顶级Windows的应用程序
- 修改光标
- 使用图像
- 动态组件
- 菜单
- 重建
- 自动更新支持模块
- 重用
- 模板
- 从现有项目中借用组件
- 范例
- 结语