Tkinter (22) 标准化外观及选项资料库 
                                                    
                        
                    
                    
  
                    
                    使用选项资料库来设置部件预设选项值, 另外可以使用预先设置文件
.XDefaults文件; 每一个部件有一个类别名称, 基本上等同类别构造器, 比如按钮为Button, 也可以自行命名; 另外一种名称就如同实例名, 预设的名称为没有意义的数值名. 所以每一个部件就会有一个类似继承的名称, 如Frame.Text.Button(在Frame 的Text 中的Button) 或.mainFrame.messageText.panicButton(第一个点代表根窗口).
建立一个新的类及命名为 Jukebox
class Jukebox(tk.Frame):
    def __init__(self, master):
        '''Constructor for the Jukebox class'''
        tk.Frame.__init__(self, master, class_='Jukebox')
        self.__createWidgets()
        ...
建立一个按钮实例及命名 panicButton
    self.panic = tk.Button(self, name='panicButton', text='Panic', ...)
预先设置文件
文件中每一行指定一个或多个选项值, 其格式如下:
app option-pattern: value
option-pattern: value
第一行 设置应用名为 app 的选项
第二行 设置所有应用的选项
xparrot*background: LimeGreen
设置应用名 xparrot 中所有的 background 选项为 LimeGreen. (在命令行中使用 -name 来设置应用名)
option-pattern 的语法:
{{*|.}name}...option
{ } 代表可有可无, ... 代表可重复, option 代表选项名称, name 可以是大写的部件分类名或小写的实例名.
*font: times 24
所有字体的选项内定为 times 24, * 代表松散绑定符号, 指该设置可以适用到任何应用, 任意地方的任何字体选项.
*Listbox.font: lucidatypewriter 14
. 代表紧密绑定符号, 指该设置仅适用到在 Listbox 类中的所有部件的字体选项.
xparrot*Jukebox*background: PapayaWhip
在应用 xparrot 的 Jukebox 中的所有部件的所有预设 background 值为 PapayaWhip
xparrot*Jukebox.background: NavajoWhite
在应用 xparrot 的 Jukebox 的预设 background 值为 NavajoWhite
资源匹配规则
当部件创建时, 未指定某些选项值时, 如果有多项资源规范适用于该选项, 将采用最具体的一个. 下例中, 第二项比第一项, 更清楚指明 Listbox 的 background, 以 Listbox 而言, background 将采第二项
*background: LimeGreen
*Listbox*background: FloralWhite
资源匹配的顺序
.优先于*实例优于类别(如 panicButton 优于 Button)多层深入优于浅层(如 *Button*font 优于 *font)- 如果两个规则的级别数相同, 列表中
较早的名称, 优于较晚的名称(xparrot*font 优于 *Button*font) 
本作品采用《CC 协议》,转载必须注明作者和本文链接
          
          
          
                关于 LearnKu