首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Gtk2::SimpleList的布尔列:如何捕获信号?

Gtk2::SimpleList的布尔列:如何捕获信号?
EN

Stack Overflow用户
提问于 2012-07-24 02:34:37
回答 1查看 233关注 0票数 1

如何在Gtk2::SimpleList中捕获布尔切换复选框的切换?

我知道checkbox本身是一个Gtk2::CellRendererToggle,它发出一个toggled信号,但是我如何访问它并设置一个信号处理程序呢?

如何在SimpleList小部件中捕获经过数据编辑的事件?

代码语言:javascript
复制
use Glib qw(TRUE FALSE);
use Gtk2 '-init';
use Gtk2::SimpleList;

my $slist = Gtk2::SimpleList->new(
    'Bool Field'    => 'bool',
    'Text Field'    => 'text'
);
$slist->set_column_editable(1, TRUE);

@{$slist->{data}} = (
    [ TRUE, 'text' ],
    [ FALSE, 'more text' ]
);

my $window = Gtk2::Window->new;
$window->set_border_width(8);
$window->signal_connect(destroy => sub { exit(0); });
$window->add($slist);
$window->show_all;

Gtk2->main;
EN

回答 1

Stack Overflow用户

发布于 2012-07-24 03:14:05

在深入到SimpleList.pm之后,我想出了下面的代码,它似乎可以工作。但这并不是很直观。

代码语言:javascript
复制
# bool column
my $col = $slist->get_column(0);
my $r = $col->get_cell_renderers;
$r->signal_connect(toggled => sub {
    my ($widget, $value, $args) = @_;
    print "checkbox toggled to $value\n";
});

# text column
($slist->get_column(1))->get_cell_renderers->signal_connect(
    edited => sub {
        my ($widget, $text_path, $new_text, $args) = @_;
        print "new text is $new_text\n";
    }
);
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11618389

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档