如何在win32 gui perl中获取文本字段数据
嗨,我想在变量中存储textfield数据,但我的代码不起作用 这是我的密码如何在win32 gui perl中获取文本字段数据,perl,textfield,Perl,Textfield,嗨,我想在变量中存储textfield数据,但我的代码不起作用 这是我的密码 use Win32::GUI qw<>; my $W1 = Win32::GUI::Window->new( -name => "W1", -title => "First Window", -pos => [ 100, 100 ], -size => [ 300, 200 ], ); $W1->AddButton( -name => "But
use Win32::GUI qw<>;
my $W1 = Win32::GUI::Window->new(
-name => "W1",
-title => "First Window",
-pos => [ 100, 100 ],
-size => [ 300, 200 ],
);
$W1->AddButton(
-name => "ButtonW1",
-text => "Enter Chipname",
-pos => [ 87, 100 ],
#-ok => 1,
);
$W1->AddTextfield(
-name => "chipfield",
-left => 20,
-top => 40,
-width => 250,
-height => 20,
# -prompt => ["Mix ",30],
);
$W1->Show();
Win32::GUI::Dialog();
exit(0);
sub W1_Terminate { return -1; }
sub ButtonW1_Click {
my $chipname = $W1->chipfield->Text();
print $chipname;
}
使用Win32::GUI qw;
my$W1=Win32::GUI::Window->new(
-名称=>“W1”,
-title=>“第一个窗口”,
-pos=>[100100],
-大小=>[300200],
);
$W1->AddButton(
-名称=>“按钮1”,
-text=>“输入芯片名”,
-pos=>[87100],
#-ok=>1,
);
$W1->AddTextfield(
-name=>“chipfield”,
-左=>20,
-top=>40,
-宽度=>250,
-高度=>20,
#-prompt=>[“混合”,30],
);
$W1->Show();
Win32::GUI::Dialog();
出口(0);
子W1_终止{return-1;}
子按钮1\u单击{
my$chipname=$W1->chipfield->Text();
打印$chipname;
}
请帮助我问题在哪里
在此处输入代码
看起来像是缓冲问题。加上$|=1;在打印$chipname之前;声明,一切都会好起来的,就像这样:
my $chipname = $W1->chipfield->Text();
$|=1;
print $chipname;
或者按照阿克塞曼的建议去改变
print $chipname;
到
您可能还想看看这篇文章:看起来像是“Win32::GUI::Window类”的销毁处理问题
my$W1=Win32::GUI::Window->new(
-名称=>“W1”,
-title=>“第一个窗口”,
-pos=>[100100],
-大小=>[300200],
);
...
$W1->Show();
Win32::GUI::Dialog();
未定义美元W1;我运行了它,它工作了。我将print语句更改为print“\$chipname='$chipname'\n”
,然后退出$chipname='ABC'
。有什么问题吗?我确实收到了投诉:“在全局销毁期间,无法对未定义的值调用方法“存储”。,但并非每次都是如此。您是对的,您的解决方案对我来说运行良好,但它给了我一个错误“在全局销毁期间,无法对未定义的值调用方法“存储”。”当我在谷歌搜索后关闭W1窗口时,这个错误就出现了。现在我使用$chipfield_name->GetLine(0);这对于mee来说很好,并且不会在全局销毁期间对未定义的值给出“不能调用方法”STORE“。错误类型。感谢您的回复:)@amit,不客气:)代码在我的计算机(ActiveState Perl 5.10.0 WinXP SP3)上正常工作并退出,没有“无法调用方法存储”错误。是的,GetLine(0)也可以完成任务。
print $chipname,"\n";
my $W1 = Win32::GUI::Window->new(
-name => "W1",
-title => "First Window",
-pos => [ 100, 100 ],
-size => [ 300, 200 ],
);
...
$W1->Show();
Win32::GUI::Dialog();
undef $W1; <-----Addtion line
exit(0);