GUI程序中的数据获取及传递是怎样的?

如题所述

如前所述,GUI程序的m文件由一个一个独立的函数构成,与其他编程语言一样,变量的有效范围仅存在于一个函数之内,在函数之外是无效的。因此,从一个函数内获取函数之外的数据,或者想将数据传递到另一个函数,需要一些特殊的方法或技巧。

在GUI编程中,最常遇到的是对控件属性的获取及修改。例如,在一个用于计算的push_button的回调函数中,需要知道一个输入框控件中的文字,以便转换成数字后进行计算,再将结果输入一个文本显示控件中。这就要求能够获取该控件的句柄,以便对该控件进行操作。在GUI程序的回调函数中都会传递一个参数handles,该参数包括了窗口中所有控件的句柄,是一个“句柄包”(因此称为handles)。有了该参数,调用任何控件的属性都是很容易的。例如:

handles.button_Calculate→string就表示一个“姓名”(tag属性)为button_Calculate的push_button的string属性的句柄。

GUI编程中,有时还需要进行数据的传递,例如将计算的中间结果传递到另一个回调函数中继续进行计算等。用全局变量可完成这一操作。在GUI程序中,也可以定义全局变量,但是对于结构化编程来说,全局变量会给程序设计和维护带来很多问题,因此推荐用另一种方法完成数据的传递。

GUI所有控件的属性中都有一项“userdata”。这个属性是系统专门留给用户来使用的。程序设计时,通过set和get函数可以在这个属性中存取任何格式的数据。虽然这个属性中只能存取一个变量,但从前面的内容可知,MATLAB可以将多个不同类型的变量组合在一个Cell类型的变量中,因此理论上讲,通过一个控件的“userdata”属性可以传递任意多个不同类型的变量。

温馨提示:答案为网友推荐,仅供参考

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网