我想解決這個問題。WxPerl,從wxPoint對象獲取座標
獲取位置Everythink可以,除了從WxPoint對象獲取座標x和y。 我不知道,我如何訪問此對象的屬性「x」,「y」。例如wxPython允許通過「somepoint.x
」,但WxPerl? somepoint->{"x"}
不起作用,因爲對象是標量引用..
謝謝
我想解決這個問題。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