如何添加滚动条

Perl Tk有两种方法添加滚动条,一种是直接新建一个带滚动条的widget(方便一点,简单一点),一种是后期将滚动条attach上一个已经存在的widget上(功能强大,但相对麻烦),不过要注意的是要先pack scrollbar,然后再pack已存在的Widget,不然在调整窗口大小时,会出问题。下面是详细的:

 

1. 新建带滚动条的Widget,使用Scrolled方法

 

$widget = $parent->Scrolled('Widget', -scrollbars => 'string' [, options ] );

 

Widget具体可以取什么值...没怎么研究不过比如Text,Listbox,Entry之流应该是没有问题...这个还需要日后有具体需求的时候再深入研究呀...

上面的string取值可以是"n" , "s" , "e" , "w" ; or "on" , "os" , "oe" , "ow"或者其他的组合,"o"代表optional,其他的代表方向了,比如n代表水平方向,widget上方,这里要注意一点,"n"跟"s"不能同时使用...如:

 

# Create optional Scrollbars south (below) and east (right) of widget

$lb = $mw->Scrolled("Listbox", -scrollbars => 'osoe')->pack;

 

在建立之后,可以通过configure进行配置,如果想要将水平方向滚动条背景颜色设置为绿色,方法如下:

 

$lb->Subwidget("xscrollbar")->configure(-background => "green");

 

2.后期加入滚动条,可以新建Scrollbar,之后由相应的widget设定yscrollcommand或xscrollcommand添加。这里注意一点,Entry不支持y轴的,所以对于文字的,推荐使用Text Widget,具体如下:

 

#!/usr/bin/perl
use warnings;
use strict;
use Tk;

my $text ="sdfsdf";
my $mw = new MainWindow;
$mw->geometry("320x480");
my $f = $mw->Frame(-relief=>"groove")->pack();
my $xscroll = $f->Scrollbar(-orient => 'horizontal');
my $yscroll = $f->Scrollbar( );
my $t = $f->Text(-yscrollcommand => ['set', $yscroll],
               -xscrollcommand => ['set', $xscroll]);
$xscroll->configure(-command => ['xview', $t]);
$yscroll->configure(-command => ['yview', $t]);
$xscroll->pack(-side => 'bottom', -fill => 'x');
$yscroll->pack(-side => 'right', -fill => 'y');
$t->pack();
$t->tagConfigure('bold', -font => "Courier 24 bold");
$t->insert('end', "This is some normal text/n");
MainLoop;

 

上面只是最基本的应用,强大的Tk还有提供更多的功能,比如设定apperence,Callback,等等等等,想深入了解的,推荐Mastering Perl/Tk.

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值