Perl Win32::Gui 模块学习 (3)---- 响应按钮Button的点击事件

上一节的代码如下

use Win32::GUI();
use Encode; #转码需要用到的模块
use utf8; #本程序用utf8编码
my $main = Win32::GUI::Window->new(-width => 200, -height => 200, -title => "My GUI application");
$main->AddLabel(-text => "Hello, world", -align =>'right',-width => 100);
$main->Center(); #这一句使主窗口生成的时候居中显示 否则会默认在屏幕的左上角显示
$main->Show();
Win32::GUI::Dialog();

这一节学习了怎样在主窗体上添加一个按钮,并且点击这个按钮会激活一个修改Label文本的方法。

首先 主窗口上的控件,为了之后方便调用这个控件,会加入一个name的属性,譬如给之前的Label取名为”Label1“

$main->AddLabel(-name => "Label1",-text => "Hello, world", -align =>'right',-width => 100);
这样之后用如下方式就可以修改它的文本了

$main->Local1->Change(-text => encode('gbk',"你好,世界")); #因为Windows汉字是gbk编码,所以这里汉字需要用encode方法转一下码

下面先用代码在主窗口上添加一个叫B1的按钮

$main->AddButton(
        -name => 'B1',
        -pos  => [100,100],
        -text => encode('gbk',"执行程序 "),
        -default => 1,
        -ok      => 1,
        -visible => 1,
        -onClick => \&changeText,
);

上面代码的含义是 在main上位置100,100上加入一个名字叫B1的按钮,按钮上的文字显示为"执行程序 ",单击这个按钮会激活一个changeText的方法。

下面编写changeText的方法来改变Label1里的内容

sub changeText{
	my $self = shift;
	$main->Label1->Change(-text => encode('gbk',"你好,世界"));
}



以下为整个代码的内容

use Win32::GUI();
use Encode;
use utf8;
my $main = Win32::GUI::Window->new(-width => 200, -height => 200, -title => "My GUI application");
$main->AddLabel(-name => "Label1",-text => "Hello, world", -align =>'right',-width => 100);
$main->AddButton(
        -name => 'B1',
        -pos  => [100,100],
        -text => encode('gbk'," 执行程序 "),
        -default => 1,
        -ok      => 1,
        -visible => 1,
        -onClick => \&changeText,
);
$main->Center(); #这一句使主窗口生成的时候居中显示 否则会默认在屏幕的左上角显示
$main->Show();

Win32::GUI::Dialog();

sub changeText{
	my $self = shift;
	$main->Label1->Change(-text => encode('gbk',"你好,世界"));
}

下图是启动时的画面



点击按钮之后,文本变成了中文,如图




  • 3
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值