分享
 
 
 

Perl/TkFAQ-10.12.怎样让多个Listbox可以同时被选择?

王朝perl·作者佚名  2008-05-18
窄屏简体版  字體: |||超大  

原文:

10.12. Is there any way to have more than one Listbox contain a selection?

To allow more than one Listbox to contain a "selection", (or at least a highlighted item - which need not be the actual selection) specify the configuration option: -exportselection => 0

which will dis-associate Listbox's selection from X selection (only one window can have X selection at a time).

Here is a rather simple script that illustrates what happens when only one Listbox has -exportselection => 0 specified: #!/usr/bin/perl -w use Tk; my $main = MainWindow->new; my @fruits = ('Apple','Banana','Cherry','Date','Elderberry','Fig'); my @nuts = qw(Almond Brazil Chestnut Doughnut Elmnut Filbert); my $fruit_list = $main->Listbox(); for (@fruits) { $fruit_list -> insert('end',$_); } $fruit_list->pack(); my $fruitprint_button = $main->Button( -text => "print selection", -command => sub{ printthem($fruit_list) } )->pack; my $nut_list = $main->Listbox( -selectmode => 'multiple', -exportselection => 0, )->pack; for (@nuts) { $nut_list -> insert('end',$_); } my $nutprint_button = $main->Button( -text => "print selection(s)", -command => sub{ printthem($nut_list) } )->pack; my $quit_button = $main->Button(-text => "quit program", -command => sub{exit}, )->pack(); MainLoop; sub printthem { my $list = shift; my @entries = $list->curselection; for (@entries) { print $list -> get($_),"\n";} }

For a more extensive example of Listbox usage combined with some perl data structure exploitation see the script at: http://www.perltk.org/contrib/etc/lb-constructor

译文:

10.12. 怎样让多个Listbox可以同时被选择?

要想允许多个Listbox都可以同时被“选择”(或者至少是有高亮显示的条目——实际不一定是真正的选择项),必须指定如下的配置选项:

-exportselection => 0;

这样就可以把Listbox的选择项和X窗口的选择项分开(因为任何时候只能有一个窗口拥有X窗口的选择)。

下面是一个简单的例子,演示了当只有一个Listbox使用的-exportselection=>0时的情况:

#!/usr/bin/perl -w

use Tk;

my $main = MainWindow->new;

my @fruits = ('Apple','Banana','Cherry','Date','Elderberry','Fig');

my @nuts = qw(Almond Brazil Chestnut Doughnut Elmnut Filbert);

my $fruit_list = $main->Listbox();

for (@fruits) { $fruit_list -> insert('end',$_); }

$fruit_list->pack();

my $fruitprint_button = $main->Button(

-text => "print selection",

-command => sub{ printthem($fruit_list) }

)->pack;

my $nut_list = $main->Listbox(

-selectmode => 'multiple',

-exportselection => 0,

)->pack;

for (@nuts) { $nut_list -> insert('end',$_); }

my $nutprint_button = $main->Button(

-text => "print selection(s)",

-command => sub{ printthem($nut_list) }

)->pack;

my $quit_button = $main->Button(-text => "quit program",

-command => sub{exit},

)->pack();

MainLoop;

sub printthem {

my $list = shift;

my @entries = $list->curselection;

for (@entries) { print $list -> get($_),"\n";}

}

(译者注:建议大家尝试一下吧$nut_list定义时的-exportselection => 0,行注掉——在前面加上一个#号——再试一试,就会比较容易理解它的意义了。)

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有