GUI开发的其实大同小异,无非就是消息之间传递的方式等不同,可能说的不是那么准确。最近自己有时间在看QT5开发,发现消息的传递主要是通过信号槽机制,比如多个VIEW之间同步更新的话利用到信号槽。今天发现目前项目还是需要自己写个GUI处理目前的数据,不然手动处理实在是太麻烦了,效率太低,奈何之前没写过Matlab GUI,算是学习新知识了。
数据传递
GUI界面内部的传递的数据
每一个控件的回调函数头:
function myc_Callback(hObject, eventdata, handles)
第一个参数是hObject,是跟这个callback回调函数所关联的控件的handles,在它自己的callback下,可以用代号-> hObject 来调用它。。举个例子:你当前使用了一个EDIT控件,你想获取当前的控件上显示的数字,则可以直接调用内部的属性就可以得到。不用管那么麻烦的概念,只用知道,控件自己的回调函数调用自己的属性,只用hObject.属性名 就可以了(中间一点)。
第二个参数是MATLAB的保留参数
第三个handles,是这个GUI界面的代号。可以通过它获取这个界面的所有信息。所以在控件A自己的回调函数中,要获取或者设置别的控件的属性,就用 handles.别的控件Tag.属性,跨控件数据获取
handles hObject 都是结构体。正常的编程概念。
handles格式是一个存放数据的缸。控件的handles是小缸,它的名字叫做hObject;GUI界面的handle是一个大缸,并且这个缸名字也叫做handles;大缸里存放了所有的小缸和所有用户数据