WideStudio/MWT Logo
WideStudio/MWT
Programming Guide
WideStudio/MWT Index
Table of contents


获取/设定对象的属性值

在事件过程中可以通过使用以下API访问对象的属性。

函数 功能
mwt::WSCvariant mwt::WSCbase_getProperty() 获取属性值
mwt::WSCvariant mwt::WSCbase_setProperty() 设定属性值



获取属性值

通过WSCbase类的成员函数getProperty()获取对象的属性值。

#----------------------------------------------------------
#Function for the event procedure
#----------------------------------------------------------
use mwt;

sub event_procedure {
        my ($object) = @_;
 
	# 获取"x" (X坐标)属性值的字符串表示 
	$x = $object->getProperty("x"); 
	printf("x=%s\n",$x->getCharPtr()); # 获得字符串

	# 获取"y" (Y坐标)属性值 
	$y = $object->getProperty("y"); 
	printf("y=%d\n",$y->getLong()); # 获得 long 类型值
}
1;

在获取"x"属性值的例子中,得到的属性值是字符串类型。在获取"y"属性值的例子中, 获得数值型属性值。由于函数getProperty()的返回值是WSCvariant 类型,可以获得 各种类型的值。

mwt.WSCvariant 取值函数 功能
mwt::WSCvarinat_getChar() 获取 char 型值
mwt::WSCvarinat_getUnsignedChar() 获取 unsigned char 型值
mwt::WSCvarinat_getShort() 获取 short 型值
mwt::WSCvarinat_getUnsignedShort() 获取 unsigned short 型值
mwt::WSCvarinat_getLong() 获取 long 型值
mwt::WSCvarinat_getUnsignedLong() 获取 unsigned long 型值
mwt::WSCvarinat_getInt() 获取 int 型值
mwt::WSCvarinat_getUnsignedInt() 获取 unsigned int 型值
mwt::WSCvarinat_getFloat() 获取 float 型值
mwt::WSCvarinat_getDouble() 获取 double 型值
mwt::WSCvarinat_getCharPtr() 获取 char* 型值



设定属性值

通过WSCbase类的成员函数setProperty()设定对象的属性值。

#----------------------------------------------------------
#Function for the event procedure
#----------------------------------------------------------
use mwt;

sub event_procedure {
        my ($object) = @_;

	# 通过字符串设定"x"(X坐标)属性值 
	$x="100";
	$object->setProperty("x",$x); 

	# 设定"y"(Y坐标)属性值
	$y=100; 
	$object->setProperty("y",$y); 
	return;
}
1;

在设定"x"属性值的例子中,通过字符串类型设定属性值。 而在设定"y"属性值的例子中,通过整数类型设定属性值。



根据属性值更新对象

通常,在事件过程执行完毕后立即更新对象。如果需要在修改属性值后 立即更新对象,通过调用update()、draw()和redraw()函数来实现。

在不同的窗口系统更新对象时,存在不能立即更新的情况(例如X11系统等)。 此时,请调用WSDappDev类的update()方法。

#----------------------------------------------------------
#Function for the event procedure
#----------------------------------------------------------
use mwt;

sub event_procedure {
  my ($object) = @_;

  $newvlab_001->getProperty("labelString","text"); 
  $newvlab_001->update();    # 直接更新对象
  mwt::WSGIappDev()->update(); # 向窗口系统提出更新要求
 
  $newvlab_002->getProperty("labelString","text"); 
  $newvlab_002->update();    # 直接更新对象
  mwt::WSGIappDev()->update(); # 向窗口系统提出更新要求
  return;
}
1;


Document Release 3.90 for WideStudio/MWT ver 3.90, Jul 2005


WideStudio/MWT documents index | Table of contents

Copyright(C) WideStudio/MWT Development Team, 1999-2005 Last modified: Jul 31, 2005