WxPerl,从wxPoint对象获取坐标
我想解决这个问题。WxPerl,从wxPoint对象获取坐标
获取位置Everythink可以,除了从WxPoint对象获取坐标x和y。 我不知道,我如何访问此对象的属性“x”,“y”。例如wxPython允许通过“somepoint.x
”,但WxPerl? somepoint->{"x"}
不起作用,因为对象是标量引用..
谢谢
以下应该做你要找的内容用于:
my $point = $frame->GetPosition;
my $x = $point->x;
my $y = $point->y;
解释会很好 – Borodin
wxPerl及其文档有点像黑客马拉松。例如,许多软件包仅在库的XS组件中定义,因此几乎不可能进行调试。 (这就是为什么你的Wx::Point
对象是一个标量引用;标量值只是对象数据的一个句柄。)
我找到了一块文档,我记得从某处解释WxPerl访问属性和方法用Perl方法调用
如果你看看wxPoint
Class Reference,你会看到有三个构造函数:一个没有参数,返回一个点在[0,0],一个需要x和y坐标以及接受现有对象并使用其坐标的复制构造函数。这些中的最后一个在wxPerl中不起作用。有许多类似的古怪,你必须自己发现,因为文档是可怕的
同样,各种“运营商”是wxPerl无关。他们可以工作,如果操作者的负担过重,但wxPerl是专为速度所以这被丢弃
至于其他已经描述的那样,这两个属性x
和y
必须为方法调用访问。 (这同样适用于在wxPerl所有其他类的属性。)
所以,你可以写
my $x = $p->x;
my $y = $p->y;
或者,如果你想获得时髦
my ($x, $y) = map { $p->$_ } qw/ x y /;
这只是一种猜测,但这是否工作:'我$ p = $ f-> GetPosition(); $对 - > X(); $ p-> y();' – stevieb
正是!谢谢 – stepan
现在我已经确认它已经成功了。 – stevieb