zoukankan      html  css  js  c++  java
  • 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.
  • 相关阅读:
    整理了一份React-Native学习指南
    新建项目
    spring security 匿名登录
    spring security remember me实现自动登录
    spring security为不同用户显示各自的登录成功页面
    spring security 管理会话 多个用户不可以使用同一个账号登录系统
    spring security 图解过滤器的使用
    spring security 判断用户是否登录 只要登录就可以访问资源
    spring security动态管理资源结合自定义登录页面
    spring security自定义拒绝访问页面
  • 原文地址:https://www.cnblogs.com/greencolor/p/2080098.html
Copyright © 2011-2022 走看看