我想解决这个问题。
除了从WxPoint对象获取坐标x和y外,一切都可以。我不知道,我如何获得这个对象的属性"x","y“。例如,wxPython允许使用"somepoint.x",但是WxPerl?somepoint->{"x"}不能工作,因为对象是标量引用。
谢谢
发布于 2016-09-19 17:33:02
以下是你想要做的事情:
my $point = $frame->GetPosition;
my $x = $point->x;
my $y = $point->y;发布于 2016-09-19 17:48:49
wxPerl及其文档有点像黑客马拉松。例如,许多包只在库的XS组件中定义,因此几乎不可能进行调试。(这就是为什么Wx::Point对象是标量引用的原因;标量值只是对象数据的句柄。)
我在某个地方找到了一大块我记得的文档,这些文档解释了WxPerl通过Perl方法调用以同样的方式访问属性和方法。
如果您查看类引用,您将看到有三个构造函数:一个没有参数,返回点为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 /;发布于 2016-09-19 17:32:54
使用了解决方案($p是wxPoint的实例):
my $p = $f->GetPosition();
$p->x(); $p->y()https://stackoverflow.com/questions/39577670
复制相似问题