首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在Tkx中使用复选按钮打印选定值

如何在Tkx中使用复选按钮打印选定值
EN

Stack Overflow用户
提问于 2011-12-04 10:34:04
回答 1查看 1.3K关注 0票数 0

我正在使用Tkx模块创建一个用@list中的文本值填充的窗口。然后我选择一个或多个,然后选择一个带有复选按钮的。我想在按下'OK‘按钮后打印已经选中的变量,但不知道如何将变量传递给'OK’-command => sub {}。谢谢。

代码语言:javascript
复制
use autodie;
use strict;
use warnings;
use Tkx;

my $mw = Tkx::widget->new( "." );
$mw->g_wm_title( "Listbox" );
$mw->m_configure( -background => "#191919" );

my $width = '700';
my $height = '500';

Tkx::update('idletasks'); 
$width  ||= Tkx::winfo('reqwidth',  $mw); 
$height ||= Tkx::winfo('reqheight', $mw); 

my $x = int((Tkx::winfo('screenwidth',  $mw) / 2) - ($width / 2)); 
my $y = int((Tkx::winfo('screenheight', $mw) / 2) - ($height / 2)); 

$mw->g_wm_geometry($width . "x" . $height . "+" . $x . "+" . $y);

my @list = ('TEXT1', 'TEXT2', 'TEXT3', 'TEXT4', 'TEXT5');

for my $list (@list) {
    my $cb = $mw->new_ttk__checkbutton(
        -text => $list,
        -onvalue => 1,
        -offvalue => 0,
    );
    $cb->g_pack(
        -anchor=>'w',
        -side=>'top',
        -fill => 'x'
    );
 }

 my $ok = $mw->new_button(
    -text => "OK",
    -command => sub {       
        print "Selected Values";
        Tkx::after(500, sub { $mw->g_destroy });
    },
);

$ok->g_pack(
   -anchor=>'c',
   -side=>'bottom',
);

Tkx::MainLoop();
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-12-04 11:35:16

如果您只想了解选中了哪些复选框:

代码语言:javascript
复制
my $settings;
for my $list (@list) {
    my $cb = $mw->new_ttk__checkbutton(
        -text => $list,
        -onvalue => 1,
        -offvalue => 0,
        -variable => \$settings->{checkbuttons}->{$list},
    );
    $cb->g_pack(
        -anchor=>'w',
        -side=>'top',
        -fill => 'x'
    );
 }

 my $ok = $mw->new_button(
    -text => "OK",
    -command => sub {       
        print "Selected Values: [";

        print join( ", ", grep { $settings->{checkbuttons}->{$_} } @list ), "]\n";
        Tkx::after(500, sub { $mw->g_destroy });
    },
);
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8372813

复制
相关文章

相似问题

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