• itk_option


    itk_option add optName ?optName optName ...?
    Adds one or more options to the composite option list for a mega-widget. Here, optName can have one of the following forms:
    component.option
    Accesses an option belonging to a component with the symbolic name component. The option name is specified without a leading "-" sign.
    className::option
    Accesses an option defined by the "itk_option define" command in class className. The option name is specified without a leading "-" sign.

    Options are normally integrated into the composite option list when a component widget is first created. This method can be used to add options at a later time. For example, the Widget and Toplevel base classes keep only the bare minimum options for their "hull" component: -background and -cursor. A derived class can override this decision, and add options that control the border of the "hull" component as well:

    itcl::class MyWidget {
        inherit Widget
    
        constructor {args} {
            itk_option add hull.borderwidth hull.relief
    
            itk_component add label {
                label $itk_interior.l1 -text "Hello World!"
            }
            pack $itk_component(label)
    
            eval itk_initialize $args
        }
    }
    
    itk_option define switchName resourceName resourceClass init ?config?
    This command is used at the level of the class definition to define a synthetic mega-widget option. Within the configure and cget methods, this option is referenced by switchName, which must start with a "-" sign. It can also be modified by setting values for resourceName and resourceClass in the X11 resource database. The init value string is used as a last resort to initialize the option if no other value can be used from an existing option, or queried from the X11 resource database. If any config code is specified, it is executed whenever the option is modified via the configure method. The config code can also be specified outside of the class definition via the configbody command.
    In the following example, a synthetic "-background" option is added to the class, so that whenever the background changes, the new value is reported to standard output. Note that this synthetic option is integrated with the rest of the "-background" options that have been kept from component widgets:
    itcl::class MyWidget {
        inherit Widget
        constructor {args} {
            itk_component add label {
                label $itk_interior.l1 -text "Hello World!"
            }
            pack $itk_component(label)
    
            eval itk_initialize $args
        }
        itk_option define -background background Background #d9d9d9 {
            puts "new background: $itk_option(-background)"
        }
    }
    
    itk_option remove optName ?optName optName ...?
    Removes one or more options from the composite option list for a mega-widget. Here, optName can have one of the forms described above for the "itk_option add" command.
    Options are normally integrated into the composite option list when a component widget is first created. This method can be used to remove options at a later time. For example, a derived class can override an option defined in a base class by removing and redefining the option:
    itcl::class Base {
        inherit itk::Widget
        constructor {args} {
            eval itk_initialize $args
        }
    
        itk_option define -foo foo Foo "" {
            puts "Base: $itk_option(-foo)"
        }
    }
    
    itcl::class Derived {
        inherit Base
    
        constructor {args} {
            itk_option remove Base::foo
            eval itk_initialize $args
        }
        itk_option define -foo foo Foo "" {
            puts "Derived: $itk_option(-foo)"
        }
    }
    
    Without the "itk_option remove" command, the code fragments for both of the "-foo" options would be executed each time the composite "-foo" option is configured. In the example above, the Base::foo option is suppressed in all Derived class widgets, so only the Derived::foo option remains.
  • 相关阅读:
    系统安全及应用
    进程和计划任务管理
    Java技术体系
    开机十步和进程管理
    Raid
    LVM逻辑卷
    sed命令
    磁盘管理
    你的背景,是这个时代 张璁
    别将梦想停留在二十岁
  • 原文地址:https://www.cnblogs.com/greencolor/p/2080098.html
Copyright © 2020-2023  润新知