首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Tk:图形缩放

Tk:图形缩放
EN

Stack Overflow用户
提问于 2013-05-08 12:08:23
回答 1查看 293关注 0票数 2

我一直试图用Tk::GraphViz绘制一个连通图。

我有以下代码:

代码语言:javascript
复制
use strict;
use warnings;
use Tk::GraphViz;
use Tk;


my $graph ='graph PathsOfPin {
    a [label = "aaa"];
    b [label = "bbb"];
    c [label = "ccc"];
    d [label = "ddd"];
    e [label = "eee"];
    f [label = "fff"];
    a--b;
    c--d;
    e--f;
    b--c;
    d--e;
}';
my $mw = new MainWindow();
my $gv = $mw->GraphViz ( qw/-width 800 -height 800/ )->pack ( qw/-expand yes -fill both/ );

$gv->fit(); # This does nothing - down't affect the view
$gv->zoom( -in => 100 ); # This gives me error
$gv->show ( $graph );
MainLoop;

当我尝试在没有fitzoom的情况下运行代码时,我得到了这个非常小的图形(看起来像一个点),我需要用鼠标放大几次,直到我看到它。

  1. 我试过fit,它应该适合图来查看--但它并不真正有效。
  2. 当我尝试用$gv-zoom对变焦进行硬编码时,我会得到以下错误: Tk::错误:不能将-scrollregion设置为Tk::GraphViz=HASH(0xd1bbb0)的数组(0xbb8d30):坏scrollRegion“??”在/5.8.5/lib/site_perl/5.8.5/x86_64-linux/Tk/Configure.pm 46号线。在/5.8.5/lib/site_perl/5.8.5/x86_64-linux/Tk/Derived.pm第294行Tk回调for。Tk回调用于5.8.5/lib/site_perl/5.8.5/x86_64-linux/Tk/Derived.pm Tk::派生::.graphviz行306 Tk::GraphViz::_scaleAndMoveView在GraphViz.pm第1445行Tk::GraphViz::缩放Tk/GraphViz.pm 1864行不能将-scrollregion设置为Tk::GraphViz=HASH(0xd1bbb0)的-scrollregion(0xbb8d30):坏scrollRegion“??”在5.8.5/x86_64-linux/Tk/Configre.pm第46行。5.8.5/x86_64-linux/Tk/派生. at第294行

这是一种更好的方式,以自动适应变焦的图表?

EN

回答 1

Stack Overflow用户

发布于 2020-11-07 04:28:36

的确有!在zoomfit之前执行show会造成很大的问题。如果您省略了zoom,并在表演之后执行fit,那么在回购程序的master上,一切都可以在当前代码中工作。

此代码现在起作用了:

代码语言:javascript
复制
use strict;
use warnings;
use Tk::GraphViz;
use Tk;

my $graph ='graph PathsOfPin {
    a [label = "aaa"];
    b [label = "bbb"];
    c [label = "ccc"];
    d [label = "ddd"];
    e [label = "eee"];
    f [label = "fff"];
    a--b;
    c--d;
    e--f;
    b--c;
    d--e;
}';

my $mw = new MainWindow();
my $gv = $mw->Scrolled('GraphViz', qw/-scrollbars osoe -width 800 -height 800/ )->pack ( qw/-expand no -fill both/ );

$gv->show ( $graph );
$gv->fit();
$mw->update;
MainLoop;

当您阅读这篇文章时,库的更新版本将在CPAN上。为了处理DOT输出格式的更改,需要进行各种修复。现在看来效果很好。请试一试,并报告GitHub问题的任何问题。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16440307

复制
相关文章

相似问题

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