在Matlab中,我曾与一个计算机程序。 这背后的想法是,它必须是用户友好和高效率的常见的计算做某些类型的设施。 在这个程序中,我已经使用了很多小部件uipanel,uitree和uicontrol。
matlab的GUI教程的许多作家建议使用Matlab的内建函数(或者我应该说是一个工具箱(?))被称为指南。 类型:
指南>>
在命令窗口中,它带来了一个窗口,在这里你可以找到和配置一个数字的组成部分。 这有单速的应用优势。 然而,大的问题,如果你想要写正版软件。 这是因为它是很难保持跟踪你的图形对象。 他们中包括结束出口的数字图
请将您的组件自己
我写我的程序,而无需使用指南。 这是很容易创建和部署组件。 正如你可以看到下面,需要一点点的命令很多的编码。 试想一下,像游戏如何健壮的代码扑克和其他应用那里是一个丰富多彩的活动。 无论如何,不使用指南编写程序。 这是通过设置在数字和窗口的位置创建的窗口句柄。 当然,其他如颜色或回调参数配置就像里面指南。 MATLAB对象一样,我已经写了我的程序,并用调用传递函数的构造组件外包的战略,暂命名为初始化GUI。 内部的结构,持有任何杠杆组件类我救我的对象。 这个结构我开始时,我躺在组件。
classdef aClassName <手柄 属性 handleToGui; 结束 方法 功能OBJ = aClassName(varargin) ... obj.initGui(); ... 结束 ... 图功能initGui(OBJ) = Obj.handleToGui.fig图(...); Obj.handleToGui.otherComponentName = ... ... 结束 结束 %结束classdef
MATLAB函数guihandles
Matlab具有称为guihandles功能。 它在许多方面是相当容易的,我会解释为什么。 原因是,你不必担心直接加入成一个结构组件,当你把他们因为guihandles(母公司),(儿童),图中的所有孩子提供了一个把手的结构。 在此之前,你可以启动后,所有的组件奠定了handleToGui。 这便成为一个领域艾姆斯的标记名称(标签)元件已获得结构。
用Matlab功能guihandles问题
但是,我认为MATLAB有没有想过这是一个风险。 另外,它是让我和其他人所使用的所有过于草率。 事实是,GUI句柄提供的所有部件在图的句柄。 如果你有不同类别,为您的应用程序的不同部分,如 一个单独的类,程序和其他类,做了类似的任务在另一个地方,他们可以摧毁对方,如果两者都使用guihandles的一部分,处理特定类型的plottyta。 在子guihandles允许手柄的主角(包括其他它的子组件)。 如果第二子具有相同的标签名称的任何组件,他们会感到困惑时组件调用它认为是什么组件。
不使用MATLAB函数guihandles的
我是面向对象编程的编程方法,为创造良好的结构。 这是通过允许每个对象(类)内部履行其任务,只有通过特定的接口与环境沟通。 全局变量guihandles提供了一个潜在的致命危险。 世界的概念的目的,换句话说,低耦合,高内聚和明确的模块。






