主页:Code-By.Org
转载请注明出处
Win32::GUI::Tutorial Part 2 - Adding Functionality
更多的控件
- 在上一节,我们介绍了使用 label 的例子。但实际应用中往往还有鼠标交互,程序响应等。
Win32::GUI 包含以下类型的控件:
* Buttons
* 编辑框,用于数据录入
* Checkboxes,复选按钮
* Radio buttons, 单选按钮
* 组合框以及列表框,用于列表点选
* 以及其他一些复杂控件,例如 list views, tree views, status bars, tab strips 等
上一章中我们已经介绍了使用控件的完整例子,接下来将做一些总结,并尝试做一些复杂的应用。
- 这一章的主题是控件句柄,将不再讨论 size, position 和 layout.
首先,创建一个基础程序:
现在,可以用 Add+控件名() 的方法为窗体添加控件,例如:AddButton(),AddTextfield(),use Win32::GUI(); $main = Win32::GUI::Window->new(-name => 'Main', -text => 'Perl', -width => 200, -height => 200); $main->Show(); Win32::GUI::Dialog(); sub Main_Terminate { -1; }
AddCheckbox(),AddCombobox(),AddListbox(),AddRadioButton() 等方法。
这些控件有着相同的机制,可以在调用时传递一系列通用参数(比如 -width, -height),以及一些控件
特有的参数。
控件有它们自己的事件处理机制,类似前面介绍过的 Main_Terminate。例如,许多控件都支持 Click
事件,在单击鼠标时触发。
- Button
- 创建一个按钮,并为 Click 事件添加一个句柄。
- 使用 Checked() 方法设置或者获取复选框的状态。分别有三种状态:
unchecked(0),checked(1) 以及 未选或不可选 (2)。
通过 Click() 事件函数响应点击。
- 通过 -text 参数设置文本内容。通过 -multiline 参数设置允许多行文本。
注意:默认使用 "\r\n" 作为换行符。-prompt 参数允许在文本区域添加一个 label 标签。
- 通过 SetRange() 和 SetStep() 方法设置属性,通过 SetPos() 和 StepIt() 更新显示。
- 默认不含任何内容。通过 AddString() 方法向列表添加内容。通过 SelectedItem() 方法获取选择的
条目。通过设置 -multisel 选项打开多选功能,在这种情况下,通过 SelectedItems() 方法获取所选
的条目(返回列表)。
- 类似单选的 list boxes(虽然他们看上去不同)
- 提供一个上下按钮以调节控件上显示的数值。按上键减小数值,按下键增加数值。注意,该控件是
附加在文本框或者标签上,通过 Buddy( $textObj ) 关联到对应的控件。例:
$updownObj->Buddy( $textObj );
该控件支持 Scroll 事件,当按下调节按钮时触发。