perl - 使用 Perl 和 GtkBuilder 连接信号

标签 perl gtk glade gtkbuilder

我试图弄清楚如何从信号处理程序中访问小部件。

我有一个名为“lblVerify”的标签,当我单击按钮时,我只想将文本更改为“已验证”。我知道我需要使用类似 Gtk2::Label->set_text 的东西,但我不完全确定如何从 on_btnVerify_clicked 函数中访问小部件属性。

 #!/usr/bin/perl

use strict;
use warnings;
use Glib qw{ TRUE FALSE };
use Gtk2 '-init';

my $builder;
my $window;

# get a new builder object
$builder = Gtk2::Builder->new();

# load the Gtk File from GLADE
$builder->add_from_file( "testglade.xml" )
    or die "Error loading GLADE file";

# create the main window
$window = $builder->get_object( "window1" )
    or die "Error while creating Main Window";

# connect the event handlers    
$builder->connect_signals( undef );


$window->show_all();


$builder = undef;

Gtk2->main();

exit;



sub on_btnVerify_clicked
{



}   

最佳答案

您需要将要访问的小部件作为“用户数据”参数传递给信号处理程序。在这种情况下,你会做类似的事情

$label = $builder->get_object("lblVerify");
$builder->connect_signals($label);

它将标签作为用户数据参数传递给所有信号处理程序。然后参数传递给 on_btnVerify_clicked将是按钮本身和标签。 (对于任何错误,我很抱歉,我的 Perl 非常生疏。)

关于perl - 使用 Perl 和 GtkBuilder 连接信号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5852440/

相关文章:

linux - 模块 cwd 帮助

qt4 - 如何在 Qt4 或 GTK 等 GUI 框架中集成 Boost.Asio 主循环

gtk - 如何找出 GTK+ 信号需要哪些 GDK 事件?

perl - 安装替代 perl 版本 - 模块丢失

perl - 如何在perl中将字节数组转换为int64

perl - 如何在 Perl CGI 程序中加密和解密密码?

c++ - 从 Gtk::TreeStore 中删除图像的整洁方法

qt - Gtk+ vs Qt 语言绑定(bind)

python - Glade Ubuntu 错误 (Python)

python - 使用 pygtk 和 glade 的数据库表的 GUI