我想解决这个问题。
答案 0 :(得分:1)
wxPerl及其文档有点像黑客马拉松。例如,许多软件包仅在库的XS组件中定义,因此几乎不可能进行调试。 (这就是你的Wx::Point
对象是标量引用的原因;标量值只是对象数据的句柄。)
我已经找到并且未能找到一大块文档,我从某处解释说WxPerl以相同的方式访问属性和方法,通过Perl方法调用
如果查看wxPoint
Class Reference,您将看到有三个构造函数:一个没有参数,返回[0,0]处的点,一个采用x和y坐标,一个复制构造函数接受现有的wxPoint
对象并使用其坐标。最后一个在wxPerl中不起作用。你必须为自己发现许多类似的怪异,因为文档令人震惊
同样是各种"运营商"与wxPerl无关。如果操作符过载,它们可以工作,但是wxPerl是为了速度而构建的,因此被丢弃了
正如其他人所描述的那样,必须将两个属性x
和y
作为方法调用进行访问。 (这同样适用于wxPerl中所有其他类的属性。)
所以你可以写
my $x = $p->x;
my $y = $p->y;
或者,如果你想变得时髦
my ($x, $y) = map { $p->$_ } qw/ x y /;
答案 1 :(得分:0)
以下内容应该可以满足您的需求:
my $point = $frame->GetPosition;
my $x = $point->x;
my $y = $point->y;
答案 2 :(得分:-1)
使用解决方案($p
是wxPoint
的实例):
my $p = $f->GetPosition();
$p->x(); $p->y()