如前所述,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”属性可以传递任意多个不同类型的变量。
对于 Python 中的 GUI 程序,一般可以从三个要素来考虑,它们是:输入:指用户在界面上进行的交互 *** 作,例如鼠标点击、键盘输入等。在 Python 的 GUI 程序中,常常使用组件如文本框、按钮、下拉框等来接收用户的输入。
处理:指对用户输入的数据或 *** 作进行处理,一般会包括数据的验证、计算、存储等过程。在 Python 的 GUI 程序中,可以使用函数、类等来实现数据的处理。
输出:指将处理后的数据或结果输出到界面上,让用户进行查看或 *** 作。在 Python 的 GUI 程序中,可以使用标签、文本框、列表框等组件来显示处理结果。
总之,Python 中的 GUI 程序需要考虑用户输入、数据处理和结果输出等三个要素,通过合理的设计和使用相应的组件和工具,可以实现用户友好的交互体验和高效的数据处理功能。
你用全局变量即可。例如,你在GUI的某个函数中申明一个全局变量global a然后,你再在命令窗口写一遍global a
此时,你运行GUI,如果a有值,在workspace中就会有出现。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)