[Perl]Win32::GUI Tutorial 官方教学翻译 Part 2

头像
PerlMonk
渐入佳境
渐入佳境
帖子: 51
注册时间: 2016年09月19日 10:20
拥有现金: 锁定
Has thanked: 4 times
Been thanked: 3 times
联系:

[Perl]Win32::GUI Tutorial 官方教学翻译 Part 2

帖子 #1 PerlMonk » 2017年06月03日 09:07

翻译:523066680@163.com
主页: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.

    首先,创建一个基础程序:

    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;
    }


    现在,可以用 Add+控件名() 的方法为窗体添加控件,例如:AddButton(),AddTextfield(),
    AddCheckbox(),AddCombobox(),AddListbox(),AddRadioButton() 等方法。

    这些控件有着相同的机制,可以在调用时传递一系列通用参数(比如 -width, -height),以及一些控件
    特有的参数。

    控件有它们自己的事件处理机制,类似前面介绍过的 Main_Terminate。例如,许多控件都支持 Click
    事件,在单击鼠标时触发。
一些控件特性

    Button
      创建一个按钮,并为 Click 事件添加一个句柄。
    Check Boxes - 复选框
      使用 Checked() 方法设置或者获取复选框的状态。分别有三种状态:
      unchecked(0),checked(1) 以及 未选或不可选 (2)。
      通过 Click() 事件函数响应点击。
    Text Fields - 文本区域
      通过 -text 参数设置文本内容。通过 -multiline 参数设置允许多行文本。
      注意:默认使用 "\r\n" 作为换行符。-prompt 参数允许在文本区域添加一个 label 标签。
    Progress Bars - 进度条
      通过 SetRange() 和 SetStep() 方法设置属性,通过 SetPos() 和 StepIt() 更新显示。
    List Boxes
      默认不含任何内容。通过 AddString() 方法向列表添加内容。通过 SelectedItem() 方法获取选择的
      条目。通过设置 -multisel 选项打开多选功能,在这种情况下,通过 SelectedItems() 方法获取所选
      的条目(返回列表)。
    Combo Boxes
      类似单选的 list boxes(虽然他们看上去不同)
    UpDown Controls
      提供一个上下按钮以调节控件上显示的数值。按上键减小数值,按下键增加数值。注意,该控件是
      附加在文本框或者标签上,通过 Buddy( $textObj ) 关联到对应的控件。例:
      $updownObj->Buddy( $textObj );
      该控件支持 Scroll 事件,当按下调节按钮时触发。
[Finished in 0.4s]

回到 “模块”

在线用户

用户浏览此论坛: 没有注册用户 和 0 访客