仅对英特尔可见 — GUID: mwh1410384248903
Ixiasoft
仅对英特尔可见 — GUID: mwh1410384248903
Ixiasoft
2.9.6.2. Toolkit API脚本实例
使Toolkit在System Console中可见
使用toolkit_set_property命令来修改根工具包的visible属性。如果将一个属性应用于整个工具包,那么请使用self一词。在其他情况下,请使用all来引用根工具包。
toolkit_set_property self visible true
添加小部件
使用toolkit_add命令添加小部件。
toolkit_add my_button button all
以下命令将一个标签小部件my_label添加到根工具包。在GUI中,标签显示为Widget Label。
set name "my_label" set content "Widget Label" toolkit_add $name label all toolkit_set_property $name text $content
在GUI中,显示的文本更改为新值。再添加一个标签:
toolkit_add my_label_2 label all toolkit_set_property my_label_2 text "Another label"
新标签显示在第一个标签的右侧。
请使用以下命令将新标签放置在第一个标签下:
toolkit_set_property self itemsPerRow 1
收集输入(Gathering Input)
要将用户输入合并到您的Toolkit API中,
- 使用以下命令创建一个文本域:
set name "my_text_field" set widget_type "textField" set parent "all" toolkit_add $name $widget_type $parent
- 小部件尺寸非常小。要使小部件填充水平空间,请使用以下命令:
toolkit_set_property my_text_field expandableX true
- 现在,文本域完全可见。单击后,您可以在域中键入文本。要检索该域的内容,请使用以下命令:
set content [toolkit_get_property my_text_field text] puts $ content
此命令将内容打印到控制台中。
根据用户事件更新小部件
使用回调时,Toolkit API也可以执行操作,而无需交互式输入:
- 首先定义一个使用文本域内容更新第一个标签的程序:
proc update_my_label_with_my_text_field{ set content [toolkit_get_property my_text_field text] toolkit_set_property my_label text $content }
- 在Tcl Console中运行update_my_label_with_my_text_field命令。第一个标签现在与文本域内容匹配。
- 每当文本域更改时,需使用update_my_label_with_my_text_field命令:
toolkit_set_property my_text_field onChange update_my_label_with_my_text_field
每次文本域更改时,Toolkit都会执行onChange属性。该属性的执行将更改第一个域以匹配您键入的内容。
按钮
使用按钮来触发操作。
- 创建一个按钮,此按钮更改第二个标签:
proc append_to_my_label_2 {suffix} { set old_text [toolkit_get_property my_label_2 text] set new_text "${old_text}${suffix}" toolkit_set_property my_label_2 text $new_text } set text_to_append ", and more" toolkit_add my_button button all toolkit_set_property my_button onClick [append_to_my_label_2 $text_to_append]
- 单击按钮将一些文本附加到第二个标签上。
组(Groups)
属性itemsPerRow表示组中小部件的布局。对于更复杂的布局,其中每行小部件数量不同,请使用嵌套组。要添加一个新租,其中每行有更多的小部件,请执行以下命令:
toolkit_add my_inner_group group all toolkit_set_property my_inner_group itemsPerRow 2 toolkit_add inner_button_1 button my_inner_group toolkit_add inner_button_2 button my_inner_group
这些命令创建一个带有两个按钮组的行。要使嵌套组更加无缝(seamless),请使用以下命令删除带有组名的边框:
toolkit_set_property my_inner_group title ""
您可以将title属性设置为任何其他字符串,以确保显示边框和标题文本。
选项卡(Tabs)
使用选项卡来管理小部件可见性:
toolkit_add my_tabs tabbedGroup all toolkit_set_property my_tabs expandableX true toolkit_add my_tab_1 group my_tabs toolkit_add my_tab_2 group my_tabs toolkit_add tabbed_label_1 label my_tab_1 toolkit_add tabbed_label_2 label my_tab_2 toolkit_set_property tabbed_label_1 text "in the first tab" toolkit_set_property tabbed_label_2 text "in the second tab"
这些命令添加了一组两个选项卡,每个选项卡都有一个包含标签的组。单击选项卡更改显示的组/标签。