免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12
最近访问板块 发新帖
楼主: h97252

Perl TK有像QQ界面一样的卷帘式菜单的组件吗? [复制链接]

论坛徽章:
0
发表于 2012-06-11 14:19 |显示全部楼层
pcbfans 发表于 2012-06-11 11:54
回复 2# kk861123

达达,有个问题反馈一下

中文排序,没接触过...你查查论坛有没有
可以使configure方法对控件进行子程序定义,如:
  1. $button->configure(-command => sub{exit});
复制代码

论坛徽章:
0
发表于 2012-06-11 21:54 |显示全部楼层
本帖最后由 pcbfans 于 2012-06-11 22:00 编辑

my %section = (
        A        => [1,2,3],
        B        => [4,5,6],
        C        => [7,8,9],
);

... ...
        
        for my $par_tmp (@{ $section{$sect_name} }) {
                $f->Button(
                        -text    => "$par_tmp",
                        -relief  => 'ridge',
                        -bg      => '#8189ce14cf5b',
                        -fg      => 'black',
                        -command => \&sub_program,
                )->pack(qw/-side top -fill x -padx 4  /);
        }

        push @frames,$f;
        push @button,$b;
}

$FRAME_L->Button(
        -text        => "CLOSE",
        -relief      => 'sunken',
        -borderwidth => 1,
        -bg          => "white",
        -fg          => "black",
        -command     => sub { exit; },
)->pack(qw/-side bottom -fill x -padx 1 -pady 2 /);

sub sub_program{
        print "sub program!";
}

MainLoop;

按A栏下面的每个按钮都会输出sub program!
问题是: 如何分别为A栏,B栏,C栏下面的按钮[1,2,3]定义子程序?能否在这个例子上给出代码以便借鉴。

论坛徽章:
0
发表于 2012-06-11 22:07 |显示全部楼层
回复 12# pcbfans


    你可以试试这样:
  1. my %sub_of = (
  2.     1 => sub{ print "program 1" },
  3.         2 => sub{ print "program 2" },
  4.         3 => sub{ print "program 3" },
  5.         4 => sub{ print "program 4" },
  6.         5 => sub{ print "program 5" },
  7.         6 => sub{ print "program 6" },
  8.         7 => sub{ print "program 7" },
  9.         8 => sub{ print "program 8" },
  10.         9 => sub{ print "program 9" },
  11. );


  12. ......
  13.         for my $par_tmp (@{ $section{$sect_name} }) {
  14.                 $f->Button(
  15.                         -text    => "$par_tmp",
  16.                         -relief  => 'ridge',
  17.                         -bg      => '#8189ce14cf5b',
  18.                         -fg      => 'black',
  19.                         -command => $sub_of{$par_tmp},
  20.                 )->pack(qw/-side top -fill x -padx 4  /);
  21.         }
复制代码

论坛徽章:
0
发表于 2012-06-12 12:47 |显示全部楼层
好办法
貌似数组中的值与前面的标签无关了?
这个实例还有很大的扩展空间

谢谢!KK

论坛徽章:
0
发表于 2013-08-04 10:18 |显示全部楼层
perl tkx写的界面怎么实现一键隐藏到系统托盘啊?
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP