如何在Perl Tk中滚动单个帧?
我正在尝试为转换程序创建GUI。我想创建一个包含日志文件的框架,但无法获取它。我找到了一些使整个窗口可滚动的代码,但这不是我想要的。我只想滚动一个包含带有链接文本变量的标签的框架 我甚至尝试了以下代码:如何在Perl Tk中滚动单个帧?,perl,scrollbar,frame,tkx,Perl,Scrollbar,Frame,Tkx,我正在尝试为转换程序创建GUI。我想创建一个包含日志文件的框架,但无法获取它。我找到了一些使整个窗口可滚动的代码,但这不是我想要的。我只想滚动一个包含带有链接文本变量的标签的框架 我甚至尝试了以下代码: $s = $parent->new_ttk__scrollbar(-orient => 'vertical', -command => [$frame, 'yview']); $frame->configure(-scrollcommand => [$s, 's
$s = $parent->new_ttk__scrollbar(-orient => 'vertical', -command => [$frame, 'yview']);
$frame->configure(-scrollcommand => [$s, 'set']);
但是我犯了一个错误。Perl说,scrollcommand
不是公认的命令
我在pastebin上发布了一段代码:框架小部件不可滚动(即它们不支持
xview
和yview
方法)。在框架中使用文本小部件而不是标签。如果你懒惰,就用它来帮你。如果您使用标签是因为希望它是只读的,请改用。当我在推广自己的模块时,请在键入搜索界面时使用
use strict;
use warnings;
use Tkx;
use Tkx::FindBar;
use Tkx::ROText;
use Tkx::Scrolled;
my $mw = Tkx::widget->new('.');
my $text = $mw->new_tkx_Scrolled('tkx_ROText',
-scrollbars => 'osoe',
-wrap => 'none',
);
my $findbar = $mw->new_tkx_FindBar(-textwidget => $text);
$findbar->add_bindings($mw,
'<Control-f>' => 'show',
'<Escape>' => 'hide',
'<F3>' => 'next',
'<Control-F3>' => 'previous',
);
$text->g_pack(-fill => 'both', -expand => 1);
$findbar->g_pack(
-after => $text,
-side => 'bottom',
-fill => 'x',
);
$findbar->hide();
open(my $fh, '<', __FILE__) or die;
$text->insert('end', do { local $/; <$fh> });
close $fh;
$mw->g_focus();
Tkx::MainLoop();
使用严格;
使用警告;
使用Tkx;
使用Tkx::FindBar;
使用Tkx::ROText;
使用Tkx::滚动;
我的$mw=Tkx::widget->new('.');
我的$text=$mw->new_-tkx_滚动('tkx_-ROText',
-滚动条=>'osoe',
-wrap=>“无”,
);
my$findbar=$mw->new_-tkx_-findbar(-textwidget=>$text);
$findbar->add_绑定($mw,
''=>'显示',
''=>'隐藏',
''=>'下一步',
''=>'先前',
);
$text->g_pack(-fill=>both',-expand=>1);
$findbar->g_pack(
-在=>$text之后,
-侧面=>“底部”,
-fill=>x',
);
$findbar->hide();
打开(我的$fh,'谢谢你的帮助。我不知道框架在哪里不可滚动。我使用了一个文本小部件,在我需要的时候可以禁用、读取和写入。当我完成GUI最重要的部分时,我会看看你的模块。我仍然感谢你。再见